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~ 😎
읽어주셔서 감사합니다 😊
'해피 코딩 > Today I Learned' 카테고리의 다른 글
[TIL 20] Redis를 사용하여 로그아웃 블랙리스트 처리하기 (0) | 2024.09.03 |
---|---|
[TIL 19] Ai가 대세! Gemini API 사용하기 (2) | 2024.09.01 |
[TIL 17] 프로젝트 중간 회고 (0) | 2024.08.29 |
[TIL 16] 스파르타 첫 번째 팀 프로젝트 시작 (1) | 2024.08.23 |
[TIL 15] DB Lock의 종류와 문제 사례 (0) | 2024.08.22 |