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