All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.cloud.lego.web.spring.boot.autoconfigure.OpenApiConfiguration Maven / Gradle / Ivy

package com.cloud.lego.web.spring.boot.autoconfigure;

import com.cloud.lego.web.spring.boot.autoconfigure.properties.OpenApiProperties;
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.media.StringSchema;
import io.swagger.v3.oas.models.parameters.HeaderParameter;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;

@AutoConfiguration
@ConditionalOnWebApplication
@EnableConfigurationProperties(OpenApiProperties.class)
public class OpenApiConfiguration {

    /**
     * 应用名称
     */
    @Value("${spring.application.name:lego-open-api}")
    private String applicationName;

    @Bean
    public OpenAPI customOpenAPI(OpenApiProperties openApiProperties) {
        return new OpenAPI()
                .components(new Components()
                        .addParameters("user", new HeaderParameter().required(true).name("x-user").description("用户信息").schema(new StringSchema()).required(false))
                        .addSecuritySchemes("Authorization", new SecurityScheme().type(SecurityScheme.Type.HTTP).bearerFormat("JWT").scheme("Bearer"))
                )
                .info(new Info()
                        .title(applicationName)
                        .version(openApiProperties.getVersion())
                        .contact(new Contact().email(openApiProperties.getContact().getEmail()).name(openApiProperties.getContact().getName()))
                        .license(new License().name("Apache 2.0").url("https://springdoc.org")));
    }
}





© 2015 - 2025 Weber Informatics LLC | Privacy Policy