swaggerui에 해당하는 글 1

Swagger 라이브러리를 사용하여 API 내용 정리하기

web/Spring|2018. 8. 7. 00:08

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 등을 확인할 수 있다.


댓글()