You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.4 KiB
Java
74 lines
2.4 KiB
Java
package egovframework.config;
|
|
|
|
import io.swagger.v3.oas.models.Components;
|
|
import io.swagger.v3.oas.models.OpenAPI;
|
|
import io.swagger.v3.oas.models.info.Info;
|
|
import io.swagger.v3.oas.models.info.License;
|
|
import org.springdoc.core.GroupedOpenApi;
|
|
import org.springdoc.core.SpringDocUtils;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
/**
|
|
* Swagger UI 설정 클래스
|
|
* OpenAPI 3.0 스펙을 기반으로 API 문서화를 위한 설정을 제공합니다.
|
|
* 세션 기반 인증을 사용하므로 별도의 보안 스키마를 설정하지 않습니다.
|
|
* @Controller 어노테이션이 있는 클래스도 스캔하도록 설정합니다.
|
|
*/
|
|
@Configuration
|
|
public class SwaggerConfig {
|
|
|
|
static {
|
|
// @Controller 어노테이션이 있는 클래스도 스캔하도록 설정
|
|
SpringDocUtils.getConfig().addAnnotationsToIgnore(RequestMapping.class);
|
|
}
|
|
|
|
/**
|
|
* 모든 API를 문서화하는 GroupedOpenApi 빈을 정의합니다.
|
|
*
|
|
* @return GroupedOpenApi 설정 객체
|
|
*/
|
|
@Bean
|
|
public GroupedOpenApi allApi() {
|
|
return GroupedOpenApi.builder()
|
|
.group("All")
|
|
.packagesToScan("go.kr.project")
|
|
.pathsToMatch("/**")
|
|
.build();
|
|
}
|
|
|
|
/**
|
|
* 로그인 관련 API를 문서화하는 GroupedOpenApi 빈을 정의합니다.
|
|
*
|
|
* @return GroupedOpenApi 설정 객체
|
|
*/
|
|
@Bean
|
|
public GroupedOpenApi loginApi() {
|
|
return GroupedOpenApi.builder()
|
|
.group("Login")
|
|
.packagesToScan("go.kr.project.login")
|
|
.pathsToMatch("/login/**")
|
|
.build();
|
|
}
|
|
|
|
/**
|
|
* OpenAPI 설정을 정의합니다.
|
|
* API 문서의 기본 정보(제목, 설명, 버전 등)를 설정합니다.
|
|
*
|
|
* @return OpenAPI 설정 객체
|
|
*/
|
|
@Bean
|
|
public OpenAPI openAPI() {
|
|
Info info = new Info()
|
|
.title("XIT Framework API")
|
|
.description("XIT Framework API 문서 - 세션 기반 인증 사용")
|
|
.version("v1.0.0")
|
|
.license(new License().name("Apache 2.0").url("http://springdoc.org"));
|
|
|
|
return new OpenAPI()
|
|
.components(new Components())
|
|
.info(info);
|
|
}
|
|
}
|