개발자들이 제일 싫어하는 문서작업..
하지만 프로젝트에는 수많은 api 가 있기 때문에 누군가는,,, 정리/관리를 해줘야 한다.🤦♀️
그래서 Swagger 를 추천받아 쓰기로 했다!
Swagger는 API 문서화를 쉽게 자동화 할 수 있도록 도와주고, 페이지에서 파라미터를 넣어서 실제 응답을 테스트 할 수도 있다.
springboot 프로젝트에 swagger 를 적용해서 api를 관리해보자!
build.gradle 파일에 다음과 같이 의존성을 추가 해준 후
implementation "io.springfox:springfox-boot-starter:3.0.0"
implementation "io.springfox:springfox-swagger-ui:3.0.0"
configuration 파일인 SwaggerConfig.java
를 만들어준다
@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30)
.useDefaultResponseMessages(true)// Swagger 에서 제공해주는 기본 응답 코드 (200, 401, 403, 404) 등의 노출 여부
.select() //선택된 api 에 대한 빌더를 초기화한다.
.apis(RequestHandlerSelectors.basePackage("com.example.hotelproject.controller"))
.paths(PathSelectors.any()) //// apis 에 위치하는 API 중 특정 path 를 선택
.build()
.apiInfo(apiInfo()); // Swagger UI 로 노출할 정보
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Swagger Test")
.description("SwaggerConfig")
.version("3.0")
.build();
}
}
빌드하고 실행 후, 확인!
http://localhost:8080/swagger-ui/
빌드하고 실행하면 뙇!!!! 될줄 알았지만,, 오류를 만났다.
Failed to start bean 'documentationPluginsBootstrapper'
application.properties 에 요놈 추가하니 잘 됐다!
spring.mvc.pathmatch.matching-strategy=ant_path_matcher
Spring boot 2.6.2버전 이후 sping.mvc.pathmatch.matching-strategy 의 값이
ant_path_matcher -> path_pattern_parser로 변경되면서 라이브러리(swagger포함)내부에 오류가 발생한다고 한다.
많은 도움이 되었습니다, 감사합니다.