gradle은 각자 Swagger 버전을 선택하여 설정할 수 있다.
dependencies {
....
//swagger
// <https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui>
implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2'
implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'
}
config.SwaggerConfig
package com.second.spring_study.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
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 SwaggerConfig implements WebMvcConfigurer {
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
//사용할 패키지의 경로를 작성한다.
//any는 다 사용한다는 뜻이다.
.paths(PathSelectors.any())
.build()
.apiInfo(metaData());
//해당 swagger페이지의 정보?를 적는다.
//new ApiInfo로 바로 작성할 수도 있다.
}
private ApiInfo metaData() {
return new ApiInfoBuilder()
.title("Spring Boot Swagger App")
//title은 화면에 보여질 제목이다.
.description("Spring Study")
//간단한 설명을 적는다.
.version("1.0.0")
//해당 api의 버전이다.
.build();
}
@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/");
}
}
적용할 controller에 작성한다.
controller.post.postYwooController
사용할 controller의 클래스 위에 적어준다.
@Api(tags = {"게시글 작성 API"})
public class PostYwooController {
...