Table of Contents
Spring Boot – springfox-swagger 3.x 사용하기
springfox-swagger 사용법을 정리해 봅니다.
의존성 추가
dependencies {
implementation 'io.springfox:springfox-boot-starter:3.0.0'
implementation 'io.springfox:springfox-swagger-ui:3.0.0'
}
설정
@Configuration
@EnableWebMvc
public class SwaggerConfig {
private ApiInfo swaggerInfo() {
return new ApiInfoBuilder().title("IoT API")
.description("IoT API Docs").build();
}
@Bean
public Docket swaggerApi() {
return new Docket(DocumentationType.SWAGGER_2)
.consumes(getConsumeContentTypes())
.produces(getProduceContentTypes())
.apiInfo(swaggerInfo()).select()
.apis(
RequestHandlerSelectors.basePackage("kr.pe.skyer9.warehouse.item.web")
.or(RequestHandlerSelectors.basePackage("kr.pe.skyer9.warehouse.ipchulgo.web"))
)
.paths(PathSelectors.any())
.build()
.useDefaultResponseMessages(false);
}
private Set<String> getConsumeContentTypes() {
Set<String> consumes = new HashSet<>();
consumes.add("application/json;charset=UTF-8");
consumes.add("application/x-www-form-urlencoded");
return consumes;
}
private Set<String> getProduceContentTypes() {
Set<String> produces = new HashSet<>();
produces.add("application/json;charset=UTF-8");
return produces;
}
@Bean
public InternalResourceViewResolver defaultViewResolver() {
return new InternalResourceViewResolver();
}
}
적용
@RestController
public class TestController {
@GetMapping(value = "/hello")
@ApiOperation(value = "hello, world api", notes = "hellow world swagger check")
public String hellowWorld(){
return "hello, world";
}
@ApiOperation(value = "test", notes = "테스트입니다")
@ApiResponses({
@ApiResponse(code = 200, message = "ok"),
@ApiResponse(code = 404, message = "page not found!")
})
@GetMapping(value = "/board")
public Map<String, String> selectBoard(@ApiParam(value = "샘플번호", required = true, example = "1")
@RequestParam String no) {
Map<String, String> result = new HashMap<>();
result.put("test title", "테스트");
result.put("test contents", "테스트 내용");
return result;
}
}
접속
localhost:8080/swagger-ui/index.html