环境:
- Java 17
- 服务在Sping Boot 3上
- OpenAPI依赖项:'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.1.0','org.springdoc:springdoc-openapi-starter-common:2.1.0','org.springdoc:springdoc-openapi-ui:1.7.0',
我试图通过头发送一个值,但在Chrome开发控制台,API调用没有在请求中的头。(FYI:在从springfox升级到openAPI之前,API可以很好地处理头)
发送其他类型的header时,我可以在Chrome dev控制台中看到。例如:
API定义:
@GetMapping(value = "somevalue")
@Operation(summary = "Get something")
@Parameters({
@Parameter(
name = "authorization1",
description = "Access Token",
required = true,
in = ParameterIn.HEADER,
schema = @Schema(implementation = String.class),
example = "12345"),
@Parameter(
name = "code",
description = "Code",
required = true,
in = ParameterIn.HEADER,
schema = @Schema(allowableValues = {"A", "B", "C", "D"})
)
})
public List<IIRDto> getII(
@Parameter(required = true) @NotNull @RequestParam List<Long> idsOfSomething
) {
// CODE
}
字符串
x1c 0d1x的数据
但是当header名称为“authorization”时,它不会显示在请求header中。
API定义:
@GetMapping(value = "somevalue")
@Operation(summary = "Get something")
@Parameters({
@Parameter(
name = "authorization",
description = "Access Token",
required = true,
in = ParameterIn.HEADER,
schema = @Schema(implementation = String.class),
example = "12345"),
@Parameter(
name = "code",
description = "Code",
required = true,
in = ParameterIn.HEADER,
schema = @Schema(allowableValues = {"A", "B", "C", "D"})
)
})
public List<IIRDto> getII(
@Parameter(required = true) @NotNull @RequestParam List<Long> idsOfSomething
) {
// CODE
}
型
的
请让我知道你的建议,通过授权头从UI。
1条答案
按热度按时间xcitsw881#
Authorization
header可以通过OpenApi
bean全局添加到所有API中,如下所示:字符串
之后,API的右侧将出现一个小的锁图标,如果单击,将显示授权弹出窗口,其中可以插入
Authorization
头的值。的数据
在
swagger-ui
页面的右上角也会有一个授权按钮,它可以做同样的事情。的
要选择性地定义受保护的API而不是全局定义,请从配置中删除
.addSecurityItem(new SecurityRequirement().addList(securitySchemeName))
行,并在每个受保护的API上方添加以下行:型