|
|
|
|
package kr.re.etri.autoflow.swagger;
|
|
|
|
|
|
|
|
|
|
import io.swagger.v3.oas.models.Components;
|
|
|
|
|
import io.swagger.v3.oas.models.OpenAPI;
|
|
|
|
|
import io.swagger.v3.oas.models.info.Contact;
|
|
|
|
|
import io.swagger.v3.oas.models.info.Info;
|
|
|
|
|
import io.swagger.v3.oas.models.info.License;
|
|
|
|
|
import io.swagger.v3.oas.models.security.SecurityRequirement;
|
|
|
|
|
import io.swagger.v3.oas.models.security.SecurityScheme;
|
|
|
|
|
import io.swagger.v3.oas.models.servers.Server;
|
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
@Configuration
|
|
|
|
|
public class OpenAPIConfig {
|
|
|
|
|
|
|
|
|
|
private static final String SECURITY_SCHEME_NAME = "bezkoder-jwt-cookie";
|
|
|
|
|
private static final String PRODUCTION_SERVER_URL = "http://cuuva.com:2480/autoflow";
|
|
|
|
|
private static final String LOCAL_SERVER_URL = "http://localhost:8080";
|
|
|
|
|
|
|
|
|
|
@Bean
|
|
|
|
|
public OpenAPI customOpenAPI() {
|
|
|
|
|
return new OpenAPI()
|
|
|
|
|
.components(createComponents())
|
|
|
|
|
.addSecurityItem(createSecurityRequirement())
|
|
|
|
|
.info(createApiInfo())
|
|
|
|
|
.servers(createServerList());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Components createComponents() {
|
|
|
|
|
return new Components().addSecuritySchemes(SECURITY_SCHEME_NAME,
|
|
|
|
|
new SecurityScheme()
|
|
|
|
|
.name("bezkoder-jwt") // 쿠키 이름
|
|
|
|
|
.type(SecurityScheme.Type.APIKEY)
|
|
|
|
|
.in(SecurityScheme.In.COOKIE)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private SecurityRequirement createSecurityRequirement() {
|
|
|
|
|
return new SecurityRequirement().addList(SECURITY_SCHEME_NAME);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private Info createApiInfo() {
|
|
|
|
|
return new Info()
|
|
|
|
|
.title("Autoflow API")
|
|
|
|
|
.description("Autoflow 서비스의 Swagger 문서")
|
|
|
|
|
.version("1.0.0")
|
|
|
|
|
.contact(new Contact()
|
|
|
|
|
.name("API Support")
|
|
|
|
|
.email("jhg88@cuuva.com"))
|
|
|
|
|
.license(new License()
|
|
|
|
|
.name("CUUVA")
|
|
|
|
|
.url("http://cuuva.com"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private List<Server> createServerList() {
|
|
|
|
|
return List.of(
|
|
|
|
|
new Server().url(PRODUCTION_SERVER_URL).description("Production Server"),
|
|
|
|
|
new Server().url(LOCAL_SERVER_URL).description("Local Server")
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|