gpt4 book ai didi

spring-boot - 如何使用 springdoc 在 swagger openapi 规范 3.0 的 @RequestBody 中创建多个模式?

转载 作者:行者123 更新时间:2023-12-05 05:06:13 25 4
gpt4 key购买 nike

我有下面的 api,我需要有两个内容类型的参数 application/x-www-form-urlencoded 因此我使用 @RequestBody 而不是@Parameter


@Operation(summary = "Revoke given permissions", description = "Allows admin to revoke permissions to users")
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public void revokePermission(
@RequestBody(description = "the permission id", content = @Content(mediaType = "application/x-www-form-urlencoded",
schema = { @Schema(type = "String", name = "permission_id",
description = "id of the permission to be revoked", required = true)},
{ @Schema(type = "String", name = "permission_type",
description = "the permission type")}))
String permission_id, String permissionType) {

do_something();
}

我需要 swagger.json 像下面的示例一样,但我不知道如何使用 springdoc 生成它。我也尝试了 @ArraySchema,但我没有得到我需要的输出。我在语法上犯了一些错误,无法在线找到示例。

"requestBody": {
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"properties": {
"permission_id": {
"description": "id of the permission to be revoked",
"type": "string"
},
"permission_type": {
"description": "the permission type",
"type": "string"
}
},
"required": ["permission_id"]
}
}
}
}

非常感谢任何帮助。时间差

最佳答案

实现您想要的最简单方法是在简单对象中定义权限数据,如下所示:

@Schema(name = "permissionData")
public class PermissionData {

@Schema(type = "String", name = "permiddionId", description = "id of the permission to be revoked", required = true)
@JsonProperty("permiddionId")
String permiddionId;

@Schema(type = "String", name = "permissionType",description = "the permission type")
@JsonProperty("permissionType")
String permissionType;
}

然后你的 Controller 方法:

@Operation(summary = "Revoke given permissions", description = "Allows admin to revoke permissions to users")
@RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
public void revokePermission(@RequestBody(description = "the permission data") PermissionData permissionData) {

}

关于spring-boot - 如何使用 springdoc 在 swagger openapi 规范 3.0 的 @RequestBody 中创建多个模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59996606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com