Swagger 接口入参使用 @RequestBody 后 @ApiModel标记的对象描述无效

本文探讨了如何在Swagger UI中正确展示带有@ApiModel标记的实体类请求参数,解决@RequestBody注解导致的注解说明缺失问题,适用于前后端接口规范的实践

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Swagger 接口入参使用 @RequestBody 后 @ApiModel标记的对象描述无效
必须去除@RequestBody 后才在Swagger ui 中看到。

因为规范接口的请求参数都是用实体类接收,form表单提交不支持@RequestBody,所以swagger显示不了注解说明。 

Swagger 2中,`@RequestBody` 用于标注请求体中的实体对象,而 `@ApiModel` 是一个注解,通常用于声明模型类,以便 Swagger 自动提取模型文档。如果在使用 `@ApiModel` 对象的字段上添加了详细的描述注释,比如 Javadoc 格式的 `@ApiModelProperty` 注解来提供字段的名称、描述、类型等信息,这些注解会被 Swagger 识别并显示在生成的 API 文档中。 然而,如果你只在 `@ApiModel` 上添加了备注信息,而没有针对具体的字段使用 `@ApiModelProperty`,那么这些全局的模型说明会直接关联到 `@RequestBody` 中的具体属性。模型的详细描述将会显示在“响应”部分,而是作为请求数的描述。 要解决这个问题,你需要为每个用于请求体的字段单独添加 `@ApiModelProperty` 注解,并提供必要的元数据,如: ```java @ApiModel(value = "YourModelName", description = "This is a model for your request body") public class YourRequestBody { @ApiModelProperty(name = "field1", value = "Description of field1", required = true) private String field1; // 其他字段... } ``` 这样,字段的描述就会出现在 Swagger 的 API 文档中。若希望将全局模型描述应用到所有字段,可以在 `@ApiModel` 上增加 `@ApiModelProperty` 的属性,例如 `description` 属性: ```java @ApiModel(description = "This is a model for your request body with global description", value = "YourModelName") public class YourRequestBody { private String field1; // 等等... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风小筝123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值