![](/img/trans.png)
[英]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.