使 Swagger 在生成的模型中使用原始 int 和 boolean
Make Swagger use primitive int and boolean in generated models
默认情况下,对于 "type": "boolean" in JSON 规范,Swagger 将在模型中生成一个 Boolean
(对象,非原始,可为空)字段。
有没有办法让 Swagger 在模型中生成 boolean
(原始的、不可为空的)字段?
基本原理是:Spring MVC 将在无效输入时使用 null
初始化这些字段,这是非常不受欢迎的。最好保留默认值。
与 int
和 Integer
相同的问题。
注意:Swagger 有自己的 "primitive" 类型概念,这与 Java 原语完全无关,也不是我想要的。
好像不可能。
我看了一下 swagger-core
and springfox
(Swagger for Spring 基于 API)。我所做的只是找到 converting/translating 基本类型的源代码。
所以在 swagger-core
I found PrimitiveType
枚举中。如您所见,没有提到原始 Java 类型,所有 swagger 类型都映射到 Java 包装器。考虑到这个枚举在内部使用并且不能被替换(除非你制作自己的版本)我认为不可能改变这种类型解析行为。
与 springfox
. I found TypeNameExtractor
that uses fasterxml
's TypeResolver
class for resolving types. This class in its turn uses ResolvedPrimitiveType
相同以获取类型映射。如您所见,类型解析也足够深入,所以我想也没有办法以某种方式改变它。
希望我的发现对您有所帮助。
默认情况下,对于 "type": "boolean" in JSON 规范,Swagger 将在模型中生成一个 Boolean
(对象,非原始,可为空)字段。
有没有办法让 Swagger 在模型中生成 boolean
(原始的、不可为空的)字段?
基本原理是:Spring MVC 将在无效输入时使用 null
初始化这些字段,这是非常不受欢迎的。最好保留默认值。
与 int
和 Integer
相同的问题。
注意:Swagger 有自己的 "primitive" 类型概念,这与 Java 原语完全无关,也不是我想要的。
好像不可能。
我看了一下 swagger-core
and springfox
(Swagger for Spring 基于 API)。我所做的只是找到 converting/translating 基本类型的源代码。
所以在 swagger-core
I found PrimitiveType
枚举中。如您所见,没有提到原始 Java 类型,所有 swagger 类型都映射到 Java 包装器。考虑到这个枚举在内部使用并且不能被替换(除非你制作自己的版本)我认为不可能改变这种类型解析行为。
与 springfox
. I found TypeNameExtractor
that uses fasterxml
's TypeResolver
class for resolving types. This class in its turn uses ResolvedPrimitiveType
相同以获取类型映射。如您所见,类型解析也足够深入,所以我想也没有办法以某种方式改变它。
希望我的发现对您有所帮助。