hoony's web study

728x90
반응형

springboot SpringDoc

https://springdoc.org

 

OpenAPI 3 Library for spring-boot

Library for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file.

springdoc.org


Swagger 가 기존에 사용을 했었는데 모듈을 붙이다 보니 충돌나는 것이 있어서 찾아보니 요즘은 위의 URL 에 있는 Springdoc을 많이 사용한다고 해서 일단 정리차원에서 포스팅을 합니다. 

1. 설치방법

pom.xml에 의존성 주입을 해줍니다. 

<dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-ui</artifactId>
      <version>1.6.8</version>
   </dependency>
반응형

2. ApiDoc 설정을 위한 class 생성

@Configuration
public class ApiDocConfig {

    @Bean
    public GroupedOpenApi publicApi() {
        return GroupedOpenApi.builder()
                .group("v1-definition")
                .pathsToMatch("/**")
                .build();
    }
    @Bean
    public OpenAPI springShopOpenAPI() {
        return new OpenAPI()
                .info(new Info().title("프로젝트제목 OPEN API")
                        .description(" 프로젝트 API 명세서입니다.")
                        .version("v0.0.1"));
    }
springdoc.swagger-ui.path=/swagger-ui.html

Swagger 형식으로 표시 할 수 있도록 application.properties 에 설정 명시 

3. Api 제공하는 Annotation 정리 

@Operation(summary = "공통코드(대분류) 목록")
    @ApiResponses({
            @ApiResponse(responseCode = "200", description = "API 요청 성공"),
            @ApiResponse(responseCode = "500", description = "에러 발생")
    })
    @RequestMapping(value = {"GetCmmncdList"}, method = {RequestMethod.POST})
    public ResponseEntity <Object> getCmmncdList(HttpServletRequest request, HttpServletResponse response,
                                                 @Parameter(name = "코드ID", required = false, example = "PAYMENT_TYPE")
                                                @RequestParam(required = false) String cmmncdId,
                                                 @Parameter(name = "코드명", required = false, example = "결제유형")
                                                @RequestParam(required = false) String cmmncdNm,
                                                 @Parameter(name = "현재 페이지", required = true, example = "1")
                                                @RequestParam int page,
                                                 @Parameter(name = "레코드 수", required = true, example = "20")
                                                @RequestParam int size){

4. 호출 방식 

-- 기존
http://IP:PORT/CONTEXT-PATH/v3/api-docs

-- Swager UI 기준
http://IP:PORT/ CONTEXT-PATH /swagger-ui/index.html


위와 같이 정리를 하면 API 명세를 간단히 확인 할 수 있습니다.
이 부분은 해당작업을 하면서 먼저 해야하기에 정리를 한번 했습니다. 


728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading