Spring Boot访问Swagger接口报400请求体缺失问题求助
问题排查及解决方案
根因1:接口未指定请求方法,Swagger默认识别错误
你当前的@RequestMapping注解仅配置了路径,没有显式指定请求方法,部分版本的Swagger会默认将接口识别为GET请求,GET请求无法携带请求体,自然会触发请求体缺失的报错。而你在Postman中手动选择了POST方法并填入了请求体,所以可以正常调用。
修复方案:
将接口注解修改为显式指定POST方法,两种写法可选:
// 写法1:指定RequestMapping的method属性 @RequestMapping(value ="/idApi", method = RequestMethod.POST) // 写法2:直接使用PostMapping注解(更简洁) @PostMapping("/idApi")
根因2:Swagger界面参数填写错误
即使接口已经指定为POST方法,Swagger界面默认可能不会自动选中Request Body的JSON输入栏,如果你没有手动填入符合VerifyIdDTO结构的JSON参数,也会触发该报错。
修复方案:
在Swagger对应接口的测试页,找到Request body区域,点击Try it out后,填入符合格式的JSON示例:
{ "id": "你的测试id值", "citizenship": "国籍信息" }
再点击Execute即可正常调用。
根因3:Swagger依赖配置缺失
如果以上两种方案都无效,检查你项目的Swagger/OpenAPI依赖是否正确集成,有没有配置类遗漏了对@RequestBody注解的扫描识别。
内容的提问来源于stack exchange,提问作者user16764484
相关产品推荐
相关产品推荐

