| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- elasticsearch
- Web
- 맛집
- nodejs
- 자바
- 자바스크립트
- node
- 스프링
- 엘라스틱서치
- 인터페이스
- error
- java
- 리뷰
- java8
- MySQL
- 알고리즘
- Git
- 이펙티브
- effective
- RCP
- 후기
- Spring
- jface
- 백준
- kibana
- JPA
- javascript
- Spring Boot
- boot
- 독후감
Archives
- Today
- Total
wedul
Swagger 라이브러리를 사용하여 API 내용 정리하기 본문
반응형
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 |