2017-07-07 414 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來獲得類型映射。正如你所看到的,鍵入解析也是足夠深的,所以我認爲也無法以某種方式改變它。

希望你發現我的發現有幫助。