[英]Integrate OpenAPI 3.0 schema for spring boot json response test
[英]Define Swagger 3.0 (OpenApi) Type Schema globally via Spring Boot Configuration
最近与我的团队开始了一个新的基于 Spring 的项目,我们决定放弃我们众所周知但过时的 Swagger 2.0 文档实践,转而遵循 OpenApi 指令的 Swagger 3.0 标准。
为了不让跳跃过于剧烈,我们试图坚持自动生成文档的基于配置和注释的风格。 然而,这并非没有一些困难。
我们想为一些高度可重用的类型定义一次模式,供整个项目使用。 也就是说,我们使用org.bson.types.ObjectId
字段,结合使用类型的十六进制字符串表示的-to-string
和string-to-
serializers/ org.bson.types.ObjectId
。 这对我们的控制器来说很好。
同时,Swagger UI (v. 1.2.9) 坚持将任何ObjectId
字段和/或参数表示为其完整的对象形式,即
"id": {
"timestamp": 0,
"counter": 0,
"time": 0,
"date": "2020-02-11T11:13:57.130Z",
"machineIdentifier": 0,
"processIdentifier": 0,
"timeSecond": 0
}
我们的java 代码有没有办法为ObjectId
类型定义模式——这是一个外部依赖——一劳永逸,以便我们的 Swagger UI 识别这种类型可以在任何遇到的实例中表示为一个简单的字符串?
我遇到了同样的问题,我使用静态块作为我的构造函数解决了它:
static {
SpringDocUtils.getConfig().replaceWithSchema(ObjectId.class, new StringSchema());
}
而且,可以肯定的是,我将 Spring Doc OpenAPI 与基于 Java 的配置一起使用。 您可以简单地根据需要进行调整。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.