默认情况下,对于JSON规范中的“类型”:"boolean“,Swagger将在模型中生成一个Boolean (对象,非原始,可空)字段。有没有办法让Swagger在模型中生成boolean (原始的,不可空的)字段呢?
其基本原理是: Spring MVC将在无效输入上使用null初始化这些字段,这是非常不可取的。最好将它们保留为默认值。
int和Integer也有同样的问题。
注意: Swagger有自己的“原始”类型的概念,这与Java基本类型完全无关,也不是我想要的。
发布于 2017-07-12 17:30:41
这似乎是不可能的。
我研究了swagger-core和springfox(Swagger for Spring based API)。我所做的事情就是找到了转换/翻译原语类型的源代码。
所以在swagger-core中我找到了PrimitiveType枚举。正如您所看到的,这里没有提到原始的Java类型,所有的swagger类型都映射到Java包装器。考虑到此枚举在内部使用且不可替换(除非您制作自己的版本),我假设不可能更改此类型解析行为。
在springfox中也是如此。我发现TypeNameExtractor使用fasterxml的TypeResolver类来解析类型。这个类反过来使用ResolvedPrimitiveType来获取类型映射。正如你所看到的,类型解析也足够深,所以我想也没有办法以某种方式改变它。
希望我的发现对你有帮助。
https://stackoverflow.com/questions/44970286
复制相似问题