Swagger UI를 스프링 부팅과 함께 사용할 수 없습니다.
Swagger UI를 Spring Boot 1.2.1로 동작시키려 합니다.https://github.com/martypitt/swagger-springmvc의 지시에 따라 추가했습니다.@EnableSwagger
spring config로 설정합니다.
저는 지금 JSON을 돌려받아서http://localhost:8080/api-docs
좋은 HTML은 없어요.
Maven을 사용하고 있으며 swag-ui에 대한 의존도를 추가했습니다.
<dependency>
<groupId>org.ajar</groupId>
<artifactId>swagger-spring-mvc-ui</artifactId>
<version>0.4</version>
</dependency>
다음은 나의 전체 종속성 목록입니다.
<dependencies>
<dependency>
<groupId>com.mangofactory</groupId>
<artifactId>swagger-springmvc</artifactId>
<version>0.9.4</version>
</dependency>
<dependency>
<groupId>org.ajar</groupId>
<artifactId>swagger-spring-mvc-ui</artifactId>
<version>0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
나도 노력했어http://localhost:8080/docs/index.html
"Whitelabel Error Page(화이트라벨 오류 페이지)"만 표시됩니다.
업데이트:
문제를 나타내기 위해 Github에서 테스트 프로젝트를 만들었습니다.https://github.com/wimdeblauwe/springboot-swagger-test
당신의 문제는 당신의SwaggerConfiguration
서류철을 가져와야 합니다@EnableWebMvc
이는 기본 Spring Boot 뷰 리졸바가 기본 Spring WebMvc에 의해 덮어쓰게 되어 스태틱콘텐츠가 다르게 처리되기 때문입니다.
기본적으로는 Spring Boot은 다음 중 하나의 디렉토리에서 스태틱콘텐츠를 제공합니다.
- /META-INF/리소스/
- /timeout/
- /static/
- /public/
Webjar를 포함합니다.
저도 같은 문제가 있었습니다.이 문서는 http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-developing-web-applications.html#boot-features-spring-mvc-auto-configuration 입니다.
봄 MVC를 완전히 제어하고 싶다면 자신의 MVC를 추가할 수 있습니다.
@Configuration
으로 주석을 단.@EnableWebMvc
Spring Boot MVC 기능을 유지하고 싶은 경우 MVC 구성(인터셉터, 포메터, 뷰 컨트롤러 등)을 추가할 수 있습니다.@Bean
타입의WebMvcConfigurerAdapter
, 단, 없음@EnableWebMvc
.
이게 도움이 됐으면 좋겠어요.
swagger-ui v0.4(spring v4.14 & swagger-springmvc v0.9.4)는 정상적으로 동작하고 있습니다만, 처음에는 같은 문제가 있었습니다.이 수업은 효과가 있는 것 같아요.
@Configuration
@EnableSwagger
public class SwaggerConfig extends WebMvcConfigurerAdapter {
@Autowired
private SpringSwaggerConfig springSwaggerConfig;
@Bean
public SwaggerSpringMvcPlugin customImplementation() {
return new SwaggerSpringMvcPlugin(springSwaggerConfig).apiInfo(
apiInfo());
}
private ApiInfo apiInfo() {
return new ApiInfo(/* strings */);
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
나는 관련 사항이 오버라이드된 것이라고 생각한다.configureDefaultServletHandling
그리고 메인에서WebApplicationInitializer
, 다음과 같은 것이 있습니다.
@Import(SwaggerConfig.class)
마지막으로 의존관계에 다음과 같은 내용을 포함하여 UI 위치 상자에 "http://localhost:8080${pageContext.request.contextPath}/api-docs"라고 표시되어 있는 문제를 해결했습니다.
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<version>8.0.15</version>-->
<scope>provided</scope>
</dependency>
이것은 JSP 처리와 관련된 무언가를 제공합니다.그것은 의 의존관계에 포함된다.spring-boot
하지만 보통 그렇지는 않습니다.provided
.
도움이 됐으면 좋겠다.
springfox swagger-ui 3.x 이상 버전에서 이 문제가 발생하는 경우.
다음 URL을 사용해 보십시오.나한테는 효과가 있었어
http://localhost:8080/http-ui/
swagger 문서의 상세한 순서에 대해서는, http://muralitechblog.com/swagger-rest-api-dcoumentation-for-spring-boot/ 를 참조해 주세요.
같은 문제가 있습니다만, 이 링크는 기능합니다.http://localhost:8080/sdoc.jsp
swagger UI 리소스 URL 상자에 http://localhost:8080${pageContext.request.contextPath}/api-docs가 미리 채워집니다.
${pageContext.request.contextPath}를 삭제하고 탐색을 누르면 API 문서가 표시되며 엔드포인트를 성공적으로 시도할 수도 있습니다.따라서 분명히 문제가 있지만 ${pageContext.request/contextPath}를 선택하지 않을 수 있습니다.
Javascript에 포함된 소스: url: window.location.origin + "${pageContext.request.contextPath}/api-docs"
static swagger ui html에서 이 부분은 다음과 같이 코드화되어 있습니다.
discoveryUrl : . / resource - list . json "
이게 좀 도움이 됐으면 좋겠는데
위의 Tamas에서 알 수 있듯이 문제는 @EnableWebMvc를 사용하는 데 있습니다.이것에 의해, 디폴트의 셋업으로 Swagger가 필요로 하는 것은 생략됩니다.그것을 @EnableSwagger2로 바꾸는 것으로, 같은 증상을 보이는 프로젝트의 문제를 해결할 수 있었습니다.
나는 내 프로젝트에서 같은 문제에 직면했다.문제를 해결했습니다.
pom.xml에 다음 의존관계가 추가되었습니다.
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>3.0.0</version>
</dependency>
프로젝트 레벨에서 다음과 같이 swagger2 UI 구성이 추가되었습니다.
@Configuration
@EnableSwagger2
@EnableAutoConfiguration
public class SpringFoxConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
다음으로 swagger UI 문서http://localhost:8080/swagger-ui/를 입수할 수 있습니다.
swagger API 문서 http://localhost: 8080/v2/api-api-displays
따로 는 Swagger가 없으면@EnableAutoConfiguration
이치노
@Configuration
@EnableSwagger2
@EnableAutoConfiguration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
}
@EnableSwagger2 태그를 사용하여 다음 단계와 코드를 따를 것을 권장합니다.https://github.com/sanketsw/SpringBoot_REST_API
또, 다음의 의존성을 사용하고 있어, 완벽하게 기능합니다.
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.2.2</version>
<scope>compile</scope>
</dependency>
언급URL : https://stackoverflow.com/questions/27861872/unable-to-get-swagger-ui-working-with-spring-boot
'programing' 카테고리의 다른 글
프로토콜 버퍼와 JSON 또는 BSON 비교 (0) | 2023.02.15 |
---|---|
심판에게 소품을 건네는 적절한 방법은 무엇입니까? (0) | 2023.02.15 |
Express 핸들바와 각도 JS 사용 (0) | 2023.02.15 |
SpringJunit4에서 테스트 고유의 ContextConfiguration과 함께 @ComponentScan을 사용하는 방법Test Runner? (0) | 2023.02.15 |
ng-repeat 내의 명령어와 스코프 '@'의 불가사의한 힘 사용 (0) | 2023.02.15 |