Skip to content
GitLab
    • Explore Projects Groups Snippets
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • O openapi-generator
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 3,476
    • Issues 3,476
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 402
    • Merge requests 402
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • OpenAPI Tools
  • openapi-generator
  • Issues
  • #8809
Closed
Open
Issue created 4 years ago by Administrator@rootContributor4 of 6 checklist items completed4/6 checklist items
  • New related issue

  • Report abuse to administrator

  • New related issue

  • Report abuse to administrator

[BUG][KOTLIN][Retrofit2] Generator should support optional header parameter

Closed

[BUG][KOTLIN][Retrofit2] Generator should support optional header parameter

Created by: alitams

Bug Report Checklist

  • Have you provided a full/minimal spec to reproduce the issue?
  • Have you validated the input using an OpenAPI validator (example)?
  • Have you tested with the latest master to confirm the issue still exists?
  • Have you searched for related issues/PRs?
  • What's the actual output vs expected output?
  • [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

Header parameters can be optional, like path parameters. See the code below. What I experience, despite of the required attribute is false, it generates the parameter as required. I expect that it should be optional with null default value.

Experienced:

@PUT("verify")
fun verify(@Body verifyRequest: VerifyRequest, @Header("Token") verifyData: String): Single<VerifyResponse>

Expected:

@PUT("verify")
fun verify(@Body verifyRequest: VerifyRequest, @Header("Token") verifyData: String? = null): Single<VerifyResponse>
openapi-generator version

5.0.1

OpenAPI declaration file content or url
   /verify:
    put:
      tags:
        - verify
      operationId: verifyData
      parameters:
        - $ref: '#/components/parameters/optionalToken'
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VerifyRequest"
        required: true
      responses:
        "200":
          description: Successfully verifed
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VerifyResponse"

components:
  parameters:
    optionalToken:
      name: Token
      in: header
      required: false
      description: OptionalToken description
      schema:
        type: string
Suggest a fix

The kotlin-client/libraries/jvm-retrofit2/headerParams.mustache should be changed from this:

{{#isHeaderParam}}@Header("{{baseName}}") {{{paramName}}}: {{{dataType}}}{{/isHeaderParam}}

to this:

{{#isHeaderParam}}@Header("{{baseName}}") {{paramName}}: {{{dataType}}}{{#required}}{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{/required}}{{^required}}?{{#defaultValue}} = {{{.}}}{{/defaultValue}}{{^defaultValue}} = null{{/defaultValue}}{{/required}}{{/isHeaderParam}}
  1. Oh no!

    You are trying to upload something other than an image. Please upload a .png, .jpg, .jpeg, .gif, .bmp, .tiff or .ico.

    Incoming!

    Drop your designs to start your upload.
Tasks
0

No tasks are currently assigned. Use tasks to break down this issue into smaller parts.

Linked items
0

Link issues together to show that they're related. Learn more.

Activity


Please register or sign in to reply
0 Assignees
None
Assign to
Labels
1
Issue: Bug
1
Issue: Bug
    Assign labels
  • Manage project labels

Milestone
No milestone
None
Due date
None
None
None
Time tracking
No estimate or time spent
Confidentiality
Not confidential
Not confidential

You are going to turn on confidentiality. Only project members with at least the Reporter role, the author, and assignees can view or be notified about this issue.

Lock issue
Unlocked
1
1 participant
Administrator
Reference: OpenAPITools/openapi-generator#8809

Menu

Explore Projects Groups Snippets