首页 > 数据库技术 > 详细

Swagger2文档MongoDB ObjectId返回成JSON的问题

时间:2021-07-22 11:06:40      阅读:9      评论:0      收藏:0      [点我收藏+]

如题,项目集成了Swagger2生产文档,但是对于MongoDB的ObjectId类型文档生成了一个JSON格式,而接口实际返回的是一个24位字符串

技术分享图片

 

 技术分享图片

 

 首先想到了@ApiModelProperty注解的dataType,加上

@ApiModelProperty(value = "消息Id",dataType = "string")
    @Id
    private ObjectId msgId;// 消息Id

重新生成还是一样的,于是百度参考了《Swagger shows Mongo ObjectId as complex JSON instead of String》,在Swagger2的配置类中加上了类型转换 .directModelSubstitute(ObjectId.class, String.class)

return new Docket(DocumentationType.SWAGGER_2)
                //将ObjectId转换成string类型
                .directModelSubstitute(ObjectId.class, String.class)
                .enable(true)       //是否开启swagger
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.shiku.om"))//扫描接口的路径
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(pars)
                .apiInfo(apiInfo());

测试一波,还是不行,一看项目重写了Swagger的starter,于是在重写的代码中又加上了上面的类型转换。测试还是GG,尝试过升级Swagger版本,但是分布式项目太大,牵扯太多。

技术分享图片

 

 最后发现一个漏掉的注解类,反之没有这个问题,那么ObjectId字段就先去掉@ApiModelProperty吧

 

Swagger2文档MongoDB ObjectId返回成JSON的问题

原文:https://www.cnblogs.com/zeussbook/p/15042743.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!