2017-07-07 52 views
5

默认情况下,对于JSON规范中的“type”:“boolean”,Swagger将在模型中生成一个Boolean(对象,非原语,可为null)字段。 有没有办法让Swagger在模型中生成boolean(原始的,不可为空的)字段?使Swagger在生成的模型中使用原始int和布尔型

基本原理是:Spring MVC将在无效输入上初始化这些字段为null,这是不可取的。更好地保留它们的默认值。

intInteger相同的问题。

注意:Swagger有它自己的“原始”类型的概念,它与Java原语完全无关,并不是我所追求的。

+0

你使用的是springfox吗? –

+0

@DmitrySenkovich不,我不知道它是什么 – alamar

+0

我决定对这两种情况做一个研究:) –

回答

7

似乎是不可能的。

我看了一下swagger-corespringfox(Swagger基于Spring的API)。我做的事就是找到用于转换/翻译原始类型的源代码。所以在swagger-core我发现PrimitiveType枚举。正如你所看到的,没有提到原始的Java类型,所有的swagger类型都映射到Java包装器。考虑到这个枚举在内部使用并且不能被替换(除非你创建自己的版本),我认为不可能改变这种类型的解析行为。

相同于springfox。我发现TypeNameExtractor使用fasterxmlTypeResolver类来解析类型。这个类依次使用ResolvedPrimitiveType来获得类型映射。正如你所看到的,键入解析也是足够深的,所以我认为也无法以某种方式改变它。

希望你发现我的发现有帮助。