我有一個配置我的 Swagger 模式,/api-docs -> openapi 3.0.1:
@Configuration
public class SwaggerConfig {
@Bean
public OpenAPI customOpenAPI() {
return new OpenAPI()
.components(new Components().addSecuritySchemes("Bearer",
new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("Bearer")
.in(SecurityScheme.In.HEADER).name("Authorization")))
.info(new Info().title("SSM API").version("0.1"));
}
}
控制器示例:
@Tag(name = "MetalBalance", description = "Контроллер баланса металла")
@RestController
@RequestMapping(path = "/metal-balance", produces = MediaType.APPLICATION_JSON_VALUE)
@SecurityRequirement(name = "Bearer")
@ResponseBody
@RequiredArgsConstructor
public class MetalBalanceController {
...
@DeleteMapping("/operations/{id}")
@Operation(summary = "Удаление операции над агрегатом")
@Parameters(value = {
@Parameter(in = ParameterIn.PATH, name = "id", example = "720050516121420278143",
description = "Идентификатор операции",
content = @Content(schema = @Schema(type = "integer"))),
})
@RolesAllowed({"MASTER_SHIHTA", "NACH_SMEN_VZKKC1", "MASTER_KONV", "FERRO_R6", "NACH_SMEN_VZKKC1", "FERRO_R", "DESIGNER",
"KONV_R", "LAB_ST_PR", "NACH_SMEN_VZKKC1", "NACH_UPPVS", "ING_CEN_CEH", "RAB_UPK", "UPK_R",
"MASTER_VAK", "VAK_R", "R_VAKUUMAT", "MASTER_UDM", "UDM_R"})
public void deleteOperation(@PathVariable("id") BigInteger operationId) {
balanceService.deleteUnitOperation(operationId);
}
}
openapi 回應,我從“/api-docs”端點獲得的資訊:
"/metal-balance/operations/{id}": {
"delete": {
"tags": [
"MetalBalance"
],
"summary": "Удаление операции над агрегатом",
"operationId": "deleteOperation",
"parameters": [
{
"name": "id",
"in": "path",
"description": "Идентификатор операции",
"required": true,
"example": 720050516121420300000,
"content": {
"*/*": {
"schema": {
"type": "integer"
}}}}],
"responses": {
"200": {
"description": "OK"
},
"400": {
"description": "Bad Request",
"content": {
"*/*": {
"schema": {
"type": "object"
}}}}},
"security": [
{
"Bearer": []}
]}}
當我嘗試通過 Swagger/OpenAPI 在線驗證器對其進行驗證時,我收到了例外,附件:驗證錯誤
如何正確調整我的配置?
提前致謝!
uj5u.com熱心網友回復:
schema如果是路徑引數和一般的原始引數(即數字/字串/布林值) ,則無需包裝content。注釋通常@Content僅用于請求正文和回應。
代替
@Parameter(in = ParameterIn.PATH, name = "id", example = "720050516121420278143",
description = "Идентификатор операции",
content = @Content(schema = @Schema(type = "integer"))),
和
@Parameter(in = ParameterIn.PATH, name = "id", example = "720050516121420278143",
description = "Идентификатор операции",
schema = @Schema(type = "integer")), // <----------
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/513994.html
標籤:弹簧靴昂首阔步开放API
