Swagger가 Spring Boot을 사용하여 Spring Data Rest API를 감지하지 못함
Spring Data Rest 및 Swagger를 포함한 Spring Boot 프로젝트를 설정했습니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.4.0</version>
</dependency>
내 스웨거 구성은 다음과 같습니다.
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
application.properties에서 발췌:
spring.data.rest.base-path=/api
server.context-path=/myapp
서버를 실행할 때 모든 rest 끝점이 올바르게 매핑되어 있으며 다음에 연결할 수 있습니다./myapp/api/...
제가 직접 만든 맞춤형 Rest Controller를 포함합니다.
그러나:
에
http://localhost:8080/myapp/api
Spring Data Rest API 목록(Json 형식)은 볼 수 있지만 사용자 지정 RestController 끝점은 볼 수 없습니다.에
http://localhost:8080/myapp/swagger-ui.html
Spring Data Rest API가 아닌 사용자 지정 Rest Controller와 오류 끝점만 나열하는 멋진 GUI가 보입니다.실제로 http://localhost:8080/myapp/v2/api-docs는 Spring Data Rest 끝점을 전혀 참조하지 않고 사용자 지정 Rest Controller와 오류 끝점만 참조합니다.
Spring Data Rest & Swagger 구성을 어떻게 수정할 수 있습니까?
스웨거의 최신 버전으로 업그레이드
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-data-rest</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>
스프링 구성/응용 프로그램 클래스에 스프링 데이터 복원 주석을 추가로 가져옵니다.
@Import(SpringDataRestConfiguration.class)
Spring Data Rest 지원은 Springfox 버전 2.6.0에서만 도입되었습니다.springfox의 최신 버전(이 문서 작성 당시 2.6.1)으로 업그레이드한 후 지침을 따르면 엔드포인트 렌더링에 문제가 없을 것입니다.
springfox-data-rest에서 구성을 가져왔습니까?Dilip Krishnan의 말처럼 지침에 따라 구성을 가져와서 이 주석을 기본 애플리케이션 클래스에 추가했습니다.
@Import({springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration.class})
도움이 되길 바랍니다!
스프링 부트 2의 경우 사용해야 합니다.springfox 3.0
안타깝게도 이 문서를 작성하는 시점에는 이 버전이 아직 출시되지 않았지만 스냅샷 버전을 사용할 수 있습니다.
<repositories>
<repository>
<id>jcenter-snapshots</id>
<name>jcenter</name>
<url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
</repository>
</repositories>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
또한 교체해야 합니다.@EnableSwagger2
와 함께@EnableSwagger2WebMvc
.
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;
@Configuration
@EnableSwagger2WebMvc
@Import(SpringDataRestConfiguration.class)
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
언급URL : https://stackoverflow.com/questions/41425425/swagger-not-detecting-spring-data-rest-apis-with-spring-boot
'programing' 카테고리의 다른 글
봄에 내 인증 필터 내에서 서비스를 자동 배선할 수 없음 (0) | 2023.07.26 |
---|---|
Angular 2의 요소에 RouterLink 또는 다른 속성 지시어를 조건부로 추가합니다. (0) | 2023.07.26 |
테이블의 CONNECT BY LEVEL이 추가 행을 반환하는 이유는 무엇입니까? (0) | 2023.07.21 |
봄 부츠와 그라들이 있는 CTRL+C는 그라들 데몬을 죽인다. (0) | 2023.07.21 |
write(write) 대 writeline(write string (0) | 2023.07.21 |