728x90
기존에는 api 테스트를 위해서 포스트맨을 사용했는데,
스웨거는 서버로 요청되는 api 리스트를 html 화면으로 문서화해서 테스트할 수 있는 라이브러리이다.
@RestController를 읽어서 api를 분석해서html문서로 정리해준다.
아주 편리해보인다.
- dependency에 아래 두 가지를 넣어준다.
implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
- 나는 gradle을 사용 중이기 때문에 buid.gradle 파일 안에 넣어줬다.
- config 파일을 만들어준다. 나는 이름을 swaggerConfig로 지었다.
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("패키지 경로를 넣어주세요."))
.paths(PathSelectors.any())
.build();
}
// 화면에 보여질 설정값들
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("제목을 지어주세요.")
.description("설명을 해주세요.")
.version("버전을 입력해주세요.")
.build();
}
}
- 나는 패키지 경로가 com.hooney.server라서 이렇게 넣어줬다.
- 빈 등록을 해주었기 때문에 서버를 실행 후 localhost:8080/swagger-ui.html로 접속하면 되는데
white label error가 발생했다 ㅠㅠㅠ
- 설정을 더 해줘야된다고 한다.
- config 파일을 하나 더 만들어준다. 이름은 WebConfig
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
- 이렇게 해주면 잘된다.
728x90
'개발 > Java&Kotlin' 카테고리의 다른 글
[Spring] Message 적용해보기 (0) | 2022.08.21 |
---|---|
[Spring] Validation 적용해보기 (0) | 2022.08.18 |
[Java] Generics (1) | 2022.08.17 |
[Java] 컬렉션 프레임워크 (2) (0) | 2022.08.16 |
[Java] 컬렉션 프레임워크 (1) (1) | 2022.08.12 |