使用swagger的 @ApiModel注解的时候有个坑 就是必须在controller 使用 @RequestBody 注解 否则无法显示models,而且不报错,此时swagger就和 spring 耦合了,而且问题难以排查。
问题展示:
@ApiOperation("获取后台文章")
@GetMapping("/admin/articles")
public ResultVO<PageResultDTO<ArticleAdminDTO>> listArticlesAdmin(ConditionVO conditionVO) {
return ResultVO.ok(articleService.listArticlesAdmin(conditionVO));
}
修改之后:
@ApiOperation("获取后台文章")
@GetMapping("/admin/articles")
public ResultVO<PageResultDTO<ArticleAdminDTO>> listArticlesAdmin(@RequestBody ConditionVO conditionVO) {
return ResultVO.ok(articleService.listArticlesAdmin(conditionVO));
}
题外话:
1、@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说:application/json或者是application/xml等。一般情况下来说常用其来处理application/json类型。
2、通过@requestBody可以将请求体中的JSON字符串绑定到相应的bean上,当然,也可以将其分别绑定到对应的字符串上。
3 springBoot 中 使用@requestBody注解的话, 前端传递参数时需要JSON格式的参数,而且Content-Type为:application/json;charset=UTF-8 格式
@RequestBody的使用需要加载MappingJackson2HttpMessageConverter,但是SpringBoot的官方文档提到,这个是默认已经加载的了
感谢您的来访,获取更多精彩文章请收藏本站。
© 版权声明
THE END
暂无评论内容