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() }