API 문서화 및 테스트를 가능케 해주는 Springfox에 대해서 알아본다.
1. 메이븐
pom.xml
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.5.0</version>
</dependency>
2. 자바에서 설정
@Configuration, @EnableWebMvc 등 설정이 들어간 클래스에 추가
@EnableSwagger2
public class WebConfiguration extends WebMvcConfigurerAdapter {
// API 객체 선언
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo());
}
// API에 대한 정보
public ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Api Documentation")
.description("Api Documentation")
.version("1.0")
.license("Apache License Version 2.0")
.licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
.build();
}
// Swagger ui 접근하기 위한 설정 (API 화면)
@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/");
}
|
3. Controller
@RequestMapping 애노테이션에 API 추가할 내용 @ApiOperation 애노테이션 추가
@ApiOperation(value = "index")
DTO, VO, Domain, Bean 같은 곳에 Request, Response에 해당하는 각 변수마다 API 추가할 애노테이션이 제공된다.
다음 예제 작성 시 알아보자.
4. 결과
http://localhost:8080/swagger-ui.html 접속 (톰캣 기본 포트 8080)
끝.
'Spring' 카테고리의 다른 글
Spring 4 자바 기반 Thymeleaf 설정 (0) | 2016.10.16 |
---|---|
Spring 4.3.2 log4jdbc-log4j2 설정 방법 (1) | 2016.09.29 |
Spring 4.3.2 자바 annotation 기반 설정 (0) | 2016.09.21 |
Spring batch 예제 (0) | 2016.04.20 |
Spring 4.2.4 + Querydsl 3.7.1 (0) | 2016.02.22 |
댓글