javaspring-bootswaggerswagger-codegencontract-first

Swagger Codegen basePath is being ignored


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: []

Solution

  • Searching more about this, I found the issue.

    It's a bug fixed by HugoMario (commit referenced on 2 Dec 2019)

    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
    

    Reference: