Gradle 프로젝트 swagger-ui 적용
dependecy 추가
implementation 'io.springfox:springfox-swagger2:2.9.2'
implementation 'io.springfox:springfox-swagger-ui:2.9.2'
SwaggerConfig 파일 생성
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfiguration {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Title")
.version("1.0.0")
.description("Description")
.build();
}
}
application.yml 추가
spring:
mvc:
pathmatch:
matching-strategy: ant_path_matcher
위 구문을 꼭 추가해주어야 에러가 발생하지 않는다.
Spring boot 2.6버전 이후에 spring.mvc.pathmatch.matching-strategy 값이 ant_apth_matcher에서 path_pattern_parser로 변경되면서
오류가 발생되는 것이라고 한다.
Failed to start bean 'documentationPluginsBootstrapper'; nested exception is java.lang.NullPointerException
위와 같은 에러가 발생하게 됨.
이 방식은 주소/swagger-ui.html
로 접근할 수 있다.
다른 swagger dependency 사용
implementation 'io.springfox:springfox-swagger-ui:3.0.0'
implementation 'io.springfox:springfox-boot-starter:3.0.0'
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.OAS_30)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Mutsa SNS Swagger")
.version("1.0.0")
.description("윤인규 개인프로젝트")
.build();
}
}
(DocumentationType.OAS_30
이 부분이 달라졌다.
또한, 이 방식은 주소/swagger-ui/
로 접근할 수 있다.