[SpringBoot] Swagger

woogiemon·2023년 3월 28일
0
post-thumbnail

springdoc-openapi 와 springfox-swagger 두 종류가 있는데, 현재 2023년 3월까지도 업데이트가 되고 있는 springdoc-openapi 를 사용하기로 하자.

build.gradle

// Swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0'

https://springdoc.org/v2/#Introduction 를 참고해서 최신 springdoc 을 사용하자.

또한 Spring의 버전별로 경로가 달라진 점도 유의하자.
Spring 2.x.x : localhost:8080/swagger-ui.html
Spring 3.x.x : localhost:8080/swagger-ui/index.html


application.yml

springdoc:
  swagger-ui:
    path: /swagger
    use-root-path: true

Configuration

package com.board.api.config;

import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class SwaggerConfig {

    @Bean
    public OpenAPI openAPI() {
        return new OpenAPI()
                .info(new Info()
                        .title("Board Project")
                        .version("v1.0.0"));
    }
}

사용 예시

@Tag(name = "Auth", description = "인증 관련 api")
@RestController
@RequestMapping("/auth")
@RequiredArgsConstructor
public class AuthController {
  private final AuthService authService;

  @Operation(summary = "회원가입", description = "회원가입 메서드입니다.")
  @PostMapping("/signUp")
  public SignUpRes signUp(@Validated SignUpReq signUpReq) {
    return authService.signUp(signUpReq);
  }

  ...
}

Reference
https://blog.jiniworld.me/91

profile
삽질 기록..

0개의 댓글