
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