模型中有 StartDate 和 endDate 字段,数据类型为 DateTime。 Swagger POST PayLoad json 日期的默认值在末尾包含 Z。
您可以让我知道我这边需要完成任何 Swagger 配置吗?
您可以让我知道我这边需要完成任何 Swagger 配置吗?
这不太可能像您所说的那样,是一个 Swagger 配置 问题。
根据 RFC3339(OpenAPI 实现的互联网日期标准),响应中返回的日期时间值无效。为了根据此标准有效,时区部分必须包含在日期时间值中。来自RFC3339第5.6节,
全日制 = 部分日制 时间偏移
时区部分可以是表示 UTC 时区的 Z,也可以是偏移量加或减一些整数小时和分钟,例如 +03:00。
我的猜测是,OpenAPI 规范使 Swagger UI 能够生成 Swagger UI 屏幕截图中的示例,其中包含响应正文中字段 startDate 和 endDate 的架构定义,该定义不将其中的值限制为仅日期时间格式。
OpenAPI 实现了 JsonSchema 进行类型定义,并根据 JsonSchema date-time 格式指令,
日期和时间在 RFC 3339 第 5.6 节中表示。
因此,如果您修改 OpenAPI 规范中这些字段的定义以正确反映它们受日期时间限制的事实,那么一旦您还更新了规范中的示例,Swagger UI 就应该正确显示这些值。
例如,
components:
schemas:
MyResponseBody:
type: object
properties:
startDate:
type: string
format: date-time # <-- do this.
endDate:
type: string
format: date-time # <-- do this.