본문 바로가기
해피 코딩/Today I Learned

[TIL 18] 프로젝트에 Swagger 적용하기

by happy-coding 2024. 9. 1.

 Today I Learned

TIL 17을 보면 개발 후 API 명세서를 직접 작성해서 수정해 줬는데, 아침 스크럼 시간에 팀원들과 소통을 하던 중 팀원 분께서 내가 직접 작성한 API 명세서를 보더니.. API 명세서를 자동으로 생성해 주는 Swagger에 대해서 알려주었다. 이런 꿀팁을 알았더라면 처음부터 적용할걸..ㅠ
그래서 오늘은 Swagger에 대해서 알아보도록 하겠다!!
  • 목표
🔥 팀 프로젝트에 Swagger를 적용하여 API 명세서 작성을 자동화 해보자!! Swag ~ 😎

build.gradle
//swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'
application.yml
springdoc:
  api-docs:
    enabled: true
  swagger-ui:
    path: /swagger-ui/index.html
SwaggerConfig
  • JWT 인증 방식을 사용하는 Swagger 설정입니다.
@Configuration
public class SwaggerConfig {
    @Bean
    public OpenAPI openAPI() {
        String jwt = "JWT";
        SecurityRequirement securityRequirement = new SecurityRequirement().addList(jwt);
        Components components = new Components().addSecuritySchemes(jwt, new SecurityScheme()
            .name(jwt)
            .type(SecurityScheme.Type.HTTP)
            .scheme("bearer")
            .bearerFormat("JWT")
        );
        return new OpenAPI()
            .components(new Components())
            .addSecurityItem(securityRequirement)
            .components(components);
    }
}
Spring Security
.requestMatchers(
        "/swagger-ui.html",
        "/swagger-ui/**",
        "/swagger-resources/**",
        "/v3/api-docs/**")
.permitAll()

[ Swagger 접속 및 확인 ]

  • application.yml 에서 설정한 swagger-ui path 주소로 접속하기
    • http://localhost:8080/swagger-ui/index.html


API 명세서를 자동으로 생성해주는 꿀기능인 Swagger를 팀 프로젝트에 적용해 보았다. Swag~ 😎

 

읽어주셔서 감사합니다 😊