42 lines
1.4 KiB
Kotlin
42 lines
1.4 KiB
Kotlin
package io.visus.demos.kotlinapi.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.security.SecurityRequirement
|
|
import io.swagger.v3.oas.models.security.SecurityScheme
|
|
import org.springdoc.core.models.GroupedOpenApi
|
|
import org.springframework.context.annotation.Bean
|
|
import org.springframework.context.annotation.Configuration
|
|
|
|
@Configuration
|
|
class OpenApiConfig {
|
|
@Bean
|
|
fun customOpenAPI(): OpenAPI =
|
|
OpenAPI()
|
|
.info(
|
|
Info()
|
|
.title("Kotlin API")
|
|
.version("1.0.0")
|
|
.description("API documentation for Kotlin Spring Boot application"),
|
|
).components(
|
|
Components()
|
|
.addSecuritySchemes(
|
|
"bearerAuth",
|
|
SecurityScheme()
|
|
.type(SecurityScheme.Type.HTTP)
|
|
.scheme("bearer")
|
|
.bearerFormat("JWT")
|
|
.description("Enter JWT Bearer token"),
|
|
),
|
|
).addSecurityItem(SecurityRequirement().addList("bearerAuth"))
|
|
|
|
@Bean
|
|
fun apiV1(): GroupedOpenApi =
|
|
GroupedOpenApi
|
|
.builder()
|
|
.group("v1")
|
|
.pathsToMatch("/api/v1/**")
|
|
.build()
|
|
}
|