Die Annotation
basePath ist in der Datei swagger.yaml richtig definiert.
Swagger-Codegen-Version:
swagger-codegen-maven-plugin: 2.2.1 und auch müde mit 2.2.2-SNAPSHOT
https://gist.github.com/tdhancii/1d0dde04413b6d98a76598a549a68985
Verwendetes Maven-Plugin zum Generieren von Code
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.2.1</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/swagger.yaml</inputSpec>
<apiPackage>co.test.swagger.api</apiPackage>
<modelPackage>co.test.swagger.model</modelPackage>
<language>spring</language>
<environmentVariables>
<models></models>
<apis></apis> <supportingFiles>HomeController.java,SwaggerDocumentationConfig.java</supportingFiles>
</environmentVariables>
</configuration>
</execution>
</executions>
</plugin>
Generieren Sie einfach den Code mit dem Maven-Plugin und überprüfen Sie die DomainApi.java-Klasse. Sie werden sehen, dass es keine Pfadzuordnungsannotation für basePath: v1 gibt, die in der Swagger-Spezifikation definiert ist
Der Kontextpfad (zB v1, v2) sollte in application.properties gesetzt werden, zB https://github.com/swagger-api/swagger-codegen/blob/master/samples/server/petstore/springboot/src/main/ Ressourcen/Anwendung.Eigenschaften
Danke für das Update
Wie kann der Kontext v1 oder v2 (die beide in derselben Spring-Instanz enthalten sein können) in application.properties (die allen Endpunkten in der Spring-Instanz gemeinsam ist) festgelegt werden?
Und was ist, wenn dieselbe Spring-Instanz andere URLs als nur die von Swagger verwaltete API verarbeitet?
Hilfreichster Kommentar
Wie kann der Kontext v1 oder v2 (die beide in derselben Spring-Instanz enthalten sein können) in application.properties (die allen Endpunkten in der Spring-Instanz gemeinsam ist) festgelegt werden?
Und was ist, wenn dieselbe Spring-Instanz andere URLs als nur die von Swagger verwaltete API verarbeitet?