60 lines
1.8 KiB
Kotlin
60 lines
1.8 KiB
Kotlin
package com.cubetiqs.web.config
|
|
|
|
import io.swagger.v3.oas.models.ExternalDocumentation
|
|
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.springframework.context.annotation.Bean
|
|
import org.springframework.context.annotation.Configuration
|
|
|
|
@Configuration
|
|
class SpringDocConfig {
|
|
companion object {
|
|
private val PUBLIC_API_PATH get() = "/public/**"
|
|
private val ADMIN_API_PATH get() = "/admin/**"
|
|
private val DEFAULT_API_PATH get() = "/**"
|
|
}
|
|
|
|
@Bean
|
|
fun defaultApi(): GroupedOpenApi {
|
|
return GroupedOpenApi.builder()
|
|
.group("default-api")
|
|
.pathsToMatch(DEFAULT_API_PATH)
|
|
.pathsToExclude("/error", PUBLIC_API_PATH, ADMIN_API_PATH)
|
|
.packagesToScan("com.cubetiqs.web")
|
|
.build()
|
|
}
|
|
|
|
@Bean
|
|
fun publicApi(): GroupedOpenApi {
|
|
return GroupedOpenApi.builder()
|
|
.group("public-api")
|
|
.pathsToMatch(PUBLIC_API_PATH)
|
|
.build()
|
|
}
|
|
|
|
@Bean
|
|
fun adminApi(): GroupedOpenApi {
|
|
return GroupedOpenApi.builder()
|
|
.group("admin-api")
|
|
.pathsToMatch(ADMIN_API_PATH)
|
|
.build()
|
|
}
|
|
|
|
@Bean
|
|
fun cubetiqOpenAPI(): OpenAPI {
|
|
return OpenAPI()
|
|
.info(
|
|
Info().title("CUBETIQ Web API")
|
|
.description("CUBETIQ Spring Web API Application")
|
|
.version("v0.0.1")
|
|
.license(License().name("Apache 2.0").url("https://cubetiqs.com"))
|
|
)
|
|
.externalDocs(
|
|
ExternalDocumentation()
|
|
.description("CUBETIQ Web Wiki Documentation")
|
|
.url("https://cubetiqs.com")
|
|
)
|
|
}
|
|
} |