繁体   English   中英

日期时间空模型架构显示 swashbuckle + swagger ui

[英]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的示例并不是很有帮助。 然而,提供一个包含有效日期的示例是有帮助的:它让消费者了解日期的样子。

现在,转到DateTimeDateTime? 属性服务器端。 当服务器收到一个缺少日期的对象时,属性的类型决定了它的值。 当缺少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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM