swagger3后台接收不到@RequestBody注解的请求体参数问题

错误示例:

swagger3发起请求:

 输出结果:

 可以看到后台没有接收到前端参数。

错误原因:

我们在引入@RequestBody注解时错误的引入了swagger注解的依赖

而我们应该使用spring的@RequestBody注解依赖。

改正:

引入spring的依赖

重起后在swagger3重新发起请求

后台成功获取到请求体内容!

当在Spring Boot项目中使用Knife4J作为API文档生成工具,并且某个处理请求的方法没有添加`@RequestBody`注解接收HTTP请求体数据,这可能导致在Knife4J的调试界面中不会直接显示一个用于输入Form Data格式参数的表单。 `@RequestBody`通常用于标注从请求主体接收JSON或表单数据的方法参数,如果没有这个注解,那么默认情况下,Knife4J可能会假设该参数是从URL路径、查询参数或头部信息获取的,而不是从请求主体获取的。因此,它不会在调试界面上提供预览表单字段的区域。 如果你想让 Knife4J 显示来自表单数据的参数,可以尝试以下几个步骤: 1. **显式标记参数**:如果确实需要解析请求体,可以在参数上使用`@ModelAttribute`或`@RequestParam`(如果是HTTP GET请求)注解,告诉框架这是一个期望从请求体接收的数据。 ```java @PostMapping("/your-endpoint") public ResponseEntity<?> processRequest(@ModelAttribute YourData yourData) { //... } ``` 2. **自定义拦截器**:如果还是希望显示为表单,你可以创建一个自定义的Swagger2ControllerAdvice,配置knife4j的拦截器去识别并解析这种模式。 3. **查看文档设置**:确认 Knife4J 是否启用了对非`@RequestBody`参数的支持,可能需要在配置文件中启用相关的选项。 如果你遇到具体的问题,建议检查项目配置和刀具插件的文档,因为可能存在特定版本兼容性问题。如果问题依然存在,可以考虑更新到最新版的Knife4J,或者在相关论坛寻求帮助,给出详细的代码片段以便于诊断。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值