Swagger

Swagger 2 설정, Bean 등록, 사용

lovineff 2020. 6. 4. 17:53

Swagger 설정 

의존성 추가 

build.gradle에 아래 의존성들을 추가

// support swagger doc
compile ('io.springfox:springfox-swagger2:2.9.2')

 

Swagger 설정 Bean 등록 

기본설정 - 설정된 /api/** 이하의 모든 API의 명세를 뽑아줍니다. 

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any()) // 현재 RequestMapping으로 할당된 모든 URL 리스트를 추출
                .paths(PathSelectors.ant("/api/**")) // 그중 /api/** 인 URL들만 필터링
                .build();
    }
}

 

 

API에 Swagger Annotation 추가 

- API에 대한 상세 제어가 필요할 경우 사용

- 다양한 타입이 존재

@ApiOperation(
        value = "사용자 삭제",
        notes = "해당 ID의 사용자를 삭제합니다.\n",
        response = UpdateResponse.class
)
@ApiImplicitParams({
        @ApiImplicitParam(name = "id", required = true,  dataType = "long", paramType = "query", value = "사용자 ID ", defaultValue = "0"),
})
@GetMapping("/delete/{id}")
public Mono<UpdateResponse> deleteUser(
        @PathVariable("id") Long id
){
    return userService.deleteUser(id);
}

 

접근 URL

http://localhost:8080/your-app-root/swagger-ui.html