[英]How to resolve Swashbuckle/Swagger -UI model naming issue for generics?
[英]Date Time null model schema display swashbuckle + swagger ui
我已經實現了 Swashbuckle 和 Swagger UI 來完成我的 API 文檔。
我在正確顯示可為空的DateTime
或任何可為空的對象時遇到問題。
當前,可為空的DateTime
在響應模型架構中顯示為"date": "2016-05-27T00:15:41.658Z"
。
響應模型將日期顯示為date (string, optional)
,表明它是可選的,但它也為不可為空的DateTime
顯示DateTime
。
我嘗試通過以下方式添加默認值: Swashbuckle (Swagger) 中的默認模型示例,並嘗試通過最后一個答案添加模型模式示例。
關於如何在模型模式中顯示"date": "null"
任何想法? 或者找到一種更好的方法讓閱讀文檔的人指示date
對象可以為空?
簡短的回答
你不能也不應該
稍長的答案
基本上提供的文檔date (string, optional)
已經告訴您的消費者該屬性可以為空或在請求或響應中丟失。 因此,提供一個帶有"date": null
的示例並不是很有幫助。 然而,提供一個包含有效日期的示例是有幫助的:它讓消費者了解日期的樣子。
現在,轉到DateTime
和DateTime?
屬性服務器端。 當服務器收到一個缺少日期的對象時,屬性的類型決定了它的值。 當缺少DateTime
類型的屬性時,ASP.Net Web API 會將該屬性設置為最小日期 (01-01-0001Z00:00:00)。 但是,當屬性類型為DateTime?
丟失,ASP.Net Web API 會將該屬性設置為 null。
服務器發送的響應也是如此。 當服務器發送一個具有DateTime
類型屬性的對象時,它總是會發送一個值。 但是,當屬性類型為DateTime?
是發送,發送的屬性只有在屬性的“HasValue”為真時才會有一個值。 否則響應將不具有該屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.