I’m trying to generate some web services definitions using Swagger Codegen » 2.2.1
All configs are working and the classes are generate correctly by my .yaml
definitions.
Why the property
basePath
is being ignored?
My @RestController
generate using only paths
definition:
https://springboot-base-save-return.appdes.xnet/saveBackendReturn
Expected (using basePath
and paths
definitions):
https://springboot-base-save-return.appdes.xnet/v1/saveBackendReturn
What am I doing wrong? Did I forget something?
My .yaml
contract:
swagger: '2.0' info: description: My Project version: 1.0.0 title: Save Backend Return host: springboot-base-save-return.appdes.xnet basePath: /v1 tags: - name: saveBackendReturn description: Save Backend Return schemes: - https paths: /saveBackendReturn: post: tags: - saveBackendReturn summary: Save Backend Return description: My Project operationId: saveBackendReturn consumes: - application/json produces: - application/json parameters: - in: body name: body description: My Project required: true schema: $ref: '#/definitions/saveBackendReturnRequest' responses: '200': description: Ok schema: $ref: '#/definitions/saveBackendReturnResponse' '400': description: Bad Request '401': description: Unauthorized '500': description: Internal Server Error schema: $ref: '#/definitions/Error' security: - basicAuth: []
Advertisement
Answer
Searching more about this, I found the issue.
It’s a bug fixed by HugoMario (commit referenced on 2 Dec 2019)
[Spring] Fixes #5244 Include basePath @RequestMapping in Spring API template
Release on master (#8131) » v2.4.12 / v2.4.11
And following Helen suggestion, I update my Swagger Codegen:
Summary: » It’s a bug of an outdated version » Now works fine!
Maven dependecy for swagger-codegen-maven-plugin
:
<dependency> <groupId>io.swagger</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>2.4.12</version> </dependency>
Maven Central Repository (check new releases):
Update Maven Project (Eclipse shortcut F5
) and make a clean build:
mvn clean verify mvn install