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


    如题,项目集成了Swagger2生成文档,但是对于MongoDB的ObjectId类型文档生成了一个JSON格式,而接口实际返回的是一个24位字符串。APP开发人员一看文档,连忙同步ObjectId的类型,结果就是报错。这咋行,必须解决

     

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

    @ApiModelProperty(value = "消息Id",dataType = "java.lang.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,看了springfox-swagger2注解依赖的版本2.6.0,再看maven仓库,2.9.2用的最多,于是乎

    <!-- swagger注解依赖  -->
                <dependency>
                    <groupId>io.springfox</groupId>
                    <artifactId>springfox-swagger2</artifactId>
                    <version>2.9.2</version>
                    <exclusions>
                        <exclusion>
                            <groupId>org.springframework</groupId>
                            <artifactId>spring-context</artifactId>
                        </exclusion>
                    </exclusions>
                </dependency>

    重启,项目可以了,ObjectId类型都转换成了String

  • 相关阅读:
    c++ vs2019中编写nasm
    CF1242 A. Tile Painting题解(gcd)
    康托展开与逆康托展开
    CF 1459B Move and Turn 题解(思维)
    杨辉三角小性质
    CF 1028C Rectangles 题解(思维)
    Educational Codeforces Round 107 题解(A-E)
    HDU 5649 DZY Love Sorting 题解(二分套线段树)
    CF1336D Two Divisors 题解(gcd性质)
    题解 BZOJ1233 【[Usaco2009Open]干草堆tower】
  • 原文地址:https://www.cnblogs.com/zeussbook/p/15042743.html
Copyright © 2020-2023  润新知