Skip to content

[REQ] Generated client library should hardcode parameters that are required and can have Only Single valid value #16547

@prashant-pant

Description

@prashant-pant

Is your feature request related to a problem? Please describe.

Consider below OpenAPI file

openapi: 3.0.3
info:
  title: Example Hello API
  description: ''
  version: v1
servers:
  - url: http://localhost
    description: Global Endpoint
paths:
  /v1/hello/{name}:
    get:
      tags:
        - hello_example
      operationId: Hello
      description: Say Hello
      parameters:
        - name: X-CUSTOM_CONSTANT_HEADER
          in: header
          required: true
          schema:
            type: string
            enum:
            - CONSTANT_VALUE
        - name: name
          in: path
          required: true
          schema:
            type: string
      responses:
        default:
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HelloResponse'
components:
  schemas:
    HelloResponse:
      type: object
      properties:
        message:
          type: string

The header X-CUSTOM_CONSTANT_HEADER is marked as required that means that clients must pass this header and the value of header can only be "CONSTANT_VALUE".
The code generated expects both CUSTOM_CONSTANT_HEADER and name as argument.

Describe the solution you'd like

The generated library code can hardcode the value of X-CUSTOM_CONSTANT_HEADER i.e. CONSTANT_VALUE in all requests and should be able to function with only name as argument.
The default behavior of library generator can remain unchanged for now and This feature can be enabled conditionally if we introduce a new flag/property for eg. autosetConstant and this is explicitly enabled via CLI/Config.

Describe alternatives you've considered

Below OpenAPI features are not useful in this case
Default : The OpenAPI Spec mentions that default value is the value which Server will use if client does not send any value. It does not describe default as the value which client will send if the value is not set by the caller.

Additional context

Stackoverflow Question asked

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions