Swagger Springboot 3.x Grouping 방법
Swagger Springboot 3.x Grouping 방법입니다.
Swagger에 대한 다양한 설정 방법은 아래의 Link를 확인하세요!
Link : https://aljjabaegi.tistory.com/713
Link : https://aljjabaegi.tistory.com/714
Link : https://aljjabaegi.tistory.com/715
Link : https://aljjabaegi.tistory.com/716
Link : https://aljjabaegi.tistory.com/717
Grouping 방법
API 의 버전을 구분하거나 업무를 분리해서 관리할 때 Grouping 하는 방법에 대해서 알아보겠습니다.
SwaggerConfig 파일에 GroupedOpenApi 를 Bean에 등록해서 관리가 가능합니다.
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SwaggerConfig {
@Bean
public GroupedOpenApi version1Api() {
return GroupedOpenApi.builder()
.group("v1.0")
.pathsToMatch("/v1/**")
.build();
}
@Bean
public GroupedOpenApi version2Api() {
return GroupedOpenApi.builder()
.group("v2.0")
.pathsToMatch("/v2/**")
.build();
}
}
위와 같이 설정 후 Swagger를 실행하면 아래와 같이 Select a definition 콤보박스가 추가된 것을 확인 할 수 있습니다.
URI 가 v1 으로 시작하는 그룹과 v2로 시작하는 그룹을 관리할 수 있습니다.
@RequestMapping("/v1")
public class MemberController {
@RequestMapping("/v2")
public class DepartmentController {
위와 같이 MemberController에 @RequestMapping("/v1") 을,
DepartmentController에 @RequestMapping("/v2") 를 추가할 경우
v1.0 에는 Member Operation 들만 표출되고,
v2.0 에는 Department Operation들이 표출 되게 됩니다.
Github Swagger Project
https://github.com/aljjabaegiProgrammer/swagger-api