Ich versuche, meine Spring Boot-Version 2.0.1.RELEASE
mit Swagger zu integrieren.
Aus diesem Blog-Post schien es einfach zu sein, wenn nur zwei Maven-Abhängigkeiten hinzugefügt werden und alles sollte funktionieren.
Also habe ich folgende Abhängigkeiten zum Pom hinzugefügt:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
Und erstellt die SwaggerConfig
-Bean:
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
return docket;
}
}
Und in der Eigenschaftendatei habe ich bei den Versuchen, es funktionieren zu lassen, diese 3 Einträge erhalten:
spring.application.name=cat-service
management.server.servlet.context-path=/cat-service
server.servlet.contextPath=/cat-service
Aber am Ende beim Zugriff
http://localhost:8080/cat-service/api/v2/api-docs
oder die UI-Seite unter
http://localhost:8080/cat-service/swagger-ui.html
Ich erhalte einen page not found
-Fehler.
Ich habe diese Probleme in der Swagger-Github-Seite gefunden und Diese Frage in stackoverflow , aber ich konnte meinen 404
-Fehler nicht ändern.
Ich konnte es mit Spring Boot Version 2.0.4.RELEASE
und diesem Blogbeitrag zum Laufen bringen:
Ich habe diese Abhängigkeiten hinzugefügt:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
Und diese Konfigurationsdatei:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SpringFoxConfig {
@Bean
public Docket apiDocket() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
Und es hat funktioniert.
Nach dem Entfernen von @EnableWebMvc
funktionierte es für mich.