Skip to content
GitLab
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
  • #11061
Closed
Open
Issue created Dec 07, 2021 by Administrator@rootContributor

[Announcement]Solution required : Generate client api to get Response header

Created by: Radha-rog

Hi Team

I am really not sure if its a Bug or new feature or I am missing anything.

I have defined the swagger in order to get the authorization token from the response header which can be used for next api call. However when I generate the client code out of swagger, it return only response body as null and not the header. I Have tried all the search but nothing was helpful.

Technology: Spring boot

Note: I have already raised the issue here but they asked me to raise under right repository. Link for the initial issue: https://github.com/OAI/OpenAPI-Specification/discussions/2815

Part of the swagger definition,

/token': post: tags: - Token parameters: - $ref: '#/components/parameters/Authorization' description: Used to generate token to call other api operationId: generateToken responses: '200': description: OK headers: authorization: schema: $ref: '#/components/securitySchemes/BearerAuth'

components: securitySchemes: BearerAuth: type: http scheme: bearer parameters: Authorization: in: header name: Authorization description: Bearer token to access the one view API's. schema: type: string required: true

Moreover, there is no response for this api, so the generated client api is throwing exception at catch block since return value is null. how can that be fixed?

try { return CompletableFuture.completedFuture( null ); } catch (IOException e) { return CompletableFuture.failedFuture(new ApiException(e)); }

My sample client generator config,

version used : openapi.generator.version :4.3.1

org.openapitools openapi-generator-maven-plugin ${openapi.generator.version} XXX generate ${project.basedir}/src/main/resources/swagger-spec/client/XXX-api.yaml
          <generatorName>java</generatorName>
          <library>native</library>
          <output>${project.basedir}</output>
  
          <generateApis>true</generateApis>
          <generateApiTests>false</generateApiTests>
          <generateApiDocumentation>false</generateApiDocumentation>
          <generateModels>true</generateModels>
          <generateModelTests>false</generateModelTests>
          <generateModelDocumentation>false</generateModelDocumentation>
          <generateSupportingFiles>true</generateSupportingFiles>
          <apiPackage>XYZ</apiPackage>
          <invokerPackage>XYZ</invokerPackage>
          <modelPackage>XYZ</modelPackage>
          <addCompileSourceRoot>true</addCompileSourceRoot>
  
          <configOptions>
              <java8>true</java8>
              <dateLibrary>java8</dateLibrary>
              <delegatePattern>true</delegatePattern>
              <useBeanValidation>true</useBeanValidation>
              <performBeanValidation>true</performBeanValidation>
              <configPackage>XYZ</configPackage>
              <interfaceOnly>true</interfaceOnly>
              <sortParamsByRequiredFlag>false</sortParamsByRequiredFlag>
              <debugOperations>true</debugOperations>
              <debugModels>true</debugModels>
              <debugOpenAPI>true</debugOpenAPI>
              <asyncNative>true</asyncNative>
              <debugSupportingFiles>true</debugSupportingFiles>
          </configOptions>
      </configuration>
  </execution>

Please guide to resolve the issue as its blocking my work

Assignee
Assign to
Time tracking