반응형
Web 개발을 진행하다보면 다양한 API를 개발하게 된다.
하지만 정리하기가 쉽지 않고 이를 위해서 인터페이스정의서를 계속 정리하기도 사실 쉽지 않다.
이를 위해서 한번에 API 내용이 정리되어 한눈에 볼 수 있도록 제공해주는 library가 있다. 이 library인 swagger를 적용해보자.
1. 라이브러리 추가
Swagger 사용을 위한 라이브러리를 gradle에 추가하자.
1 2 | compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.5.0' compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.5.0' | cs |
2. Swagger 설정 관련 내용 Configuration 클래스 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | package com.wedul.common.config; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * Swagger 사용을 위한 설정 클래스 */ @Configuration @EnableSwagger2 public class SwaggerConfiguration { /** * 설정 * * @return the docket */ public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) // 현재 RequestMapping으로 할당된 모든 URL 리스트를 추출 .paths(PathSelectors.ant("/user/**")) // /user/** 인 URL들만 추출 .build(); } } | cs |
Docket의 더 많은 사용법은 아래 사이트 참고.
https://swagger.io/tools/swaggerhub/hosted-api-documentation/
3. Spring Security 사용시 권한 허용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | // 권한 허용 리스트 @Override public void configure(WebSecurity web) throws Exception { // 허용되어야 할 경로들 web.ignoring().antMatchers("/resources/**", "/dist/**", "/weather", "/user/password/find", "/user/join", "/user/email", "/user/nickname", "/user/send/temppw", "/findpw", "/user/findpw", "/user/cert/check", "/join", "/getLanguage/**", "/getMessage", "/api/**"); // #3 } // resource 허용 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/dist/**").addResourceLocations("/dist/"); registry.addResourceHandler("/resources/**") .addResourceLocations("/WEB-INF/resources/"); registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); } | cs |
이렇게 한 후 실행 시키면 다음과 같이 swagger-ui를 확인할 수 있다.
또한 각 상황에 대해 API를 호출하면서 header, body, response 등을 확인할 수 있다.
반응형
'web > Spring' 카테고리의 다른 글
Spring Application Test 정리 (0) | 2018.08.07 |
---|---|
Java 9 이후 deprecated된 Spring @PostConstruct와 @PreDestory 대안소개 (0) | 2018.08.07 |
[Spring Boot] Maven에서 Gradle로 변경 후 발생한 FreeMarkerWebConfiguration NoSuchFieldError 수정 (0) | 2018.08.05 |
Spring Boot에서 src/main/resource 파일 접근 방법 및 주의사항. (4) | 2018.07.21 |
JSP가 포함된 Spring Boot에서 Jar 파일로 패키징 시 오류 해결방법 (0) | 2018.07.05 |