mirror of
https://github.com/nagisa77/OpenIsle.git
synced 2026-02-19 13:30:55 +08:00
feat: allow configuring multiple openapi servers
This commit is contained in:
@@ -8,13 +8,18 @@ import io.swagger.v3.oas.models.security.SecurityScheme;
|
||||
import io.swagger.v3.oas.models.servers.Server;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
@RequiredArgsConstructor
|
||||
public class OpenApiConfig {
|
||||
|
||||
private final SpringDocProperties springDocProperties;
|
||||
|
||||
@Value("${springdoc.info.title}")
|
||||
private String title;
|
||||
|
||||
@@ -30,20 +35,21 @@ public class OpenApiConfig {
|
||||
@Value("${springdoc.info.header}")
|
||||
private String header;
|
||||
|
||||
@Value("${springdoc.api-docs.server-url}")
|
||||
private String serverUrl;
|
||||
|
||||
@Bean
|
||||
public OpenAPI openAPI() {
|
||||
SecurityScheme securityScheme = new SecurityScheme()
|
||||
.type(SecurityScheme.Type.HTTP)
|
||||
.scheme(scheme.toLowerCase())
|
||||
.bearerFormat("JWT")
|
||||
.in(SecurityScheme.In.HEADER)
|
||||
.name(header);
|
||||
.type(SecurityScheme.Type.HTTP)
|
||||
.scheme(scheme.toLowerCase())
|
||||
.bearerFormat("JWT")
|
||||
.in(SecurityScheme.In.HEADER)
|
||||
.name(header);
|
||||
|
||||
List<Server> servers = springDocProperties.getServers().stream()
|
||||
.map(s -> new Server().url(s.getUrl()).description(s.getDescription()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
return new OpenAPI()
|
||||
.servers(List.of(new Server().url(serverUrl)))
|
||||
.servers(servers)
|
||||
.info(new Info()
|
||||
.title(title)
|
||||
.description(description)
|
||||
|
||||
Reference in New Issue
Block a user