我使用的是 springdoc-openapi-ui
. 我已经配置了名为 Authorization
.当我执行API时 Authorization
没有显示在请求的CURL中。我的其他参数都显示在CURL中,除了 Authorization
.
之前,我使用的是 springfox-swagger-ui
而那次是显示在CURL部分。
我也搜索了一下,发现了Note on https:/swagger.iodocsspecificationdescribing-parameters#header-parameters。Note: Header parameters named Accept, Content-Type and Authorization are not allowed.
但我要求使用 Authorization
只作为头部。有什么办法可以实现这一点?
我的 SwaggerConfiguration
是在下面添加的。
@Configuration
public class SwaggerConfiguration {
@Value("${title:title}")
private String title;
@Value("${description:description.}")
private String description;
@Value("${version:0.0.1}")
private String version;
@Value("${schemeId}")
String schemeIdentifier;
@Bean
public OperationCustomizer customGlobalHeaders() {
return (Operation operation, HandlerMethod handlerMethod) -> {
Parameter authorization = new Parameter().in(ParameterIn.HEADER.toString()).name("Authorization")
.description("Authorization details JWT token")
.schema(new StringSchema()).required(true);
Parameter applicationId = new Parameter().in(ParameterIn.HEADER.toString()).schema(new StringSchema())
.name("Application-Id").description("Originating application or client using the service")
.required(false);
operation.addParametersItem(authorization);
operation.addParametersItem(applicationId);
return operation;
};
}
@Bean
public GroupedOpenApi adminApi() {
String[] packagesToscan = { "abc.controller" };
return GroupedOpenApi.builder().setGroup("Client").packagesToScan(packagesToscan).build();
}
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI().info(new Info().title(title).version(version).description(description))
.components(new Components());
}
}
我已经搜索了同样的答案。我们不能将授权设置为一个头,并与 springdoc open api
.如果我们要使用,那么我们需要启用授权按钮,对 swagger ui
.
然后会显示在CURL部分,如下图所示。
在glabal位置启用swagger上的授权按钮的代码。
@Configuration
public class SwaggerConfiguration {
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI().info(new
Info().title("title").version("version").description("description"))
.addSecurityItem(new SecurityRequirement().addList("my security"))
.components(new Components().addSecuritySchemes("my security",
new SecurityScheme().name("my
security").type(SecurityScheme.Type.HTTP).scheme("bearer")));
}
}