如何在 OpenAPI 3.0 中记录 RFC3339 日期时间输入?

How to document RFC3339 date-time input in OpenAPI 3.0?

使用 OpenAPI 3.0,我需要记录如何使用 HTTP POST 向我的 API 端点提供 RFC3339 日期时间 JSON 输入。

示例日期时间格式如下所示:

"2021-06-20T01:02:03+00:00"

参考 Swagger 文档,我尝试了各种方法,包括以下内容:

          content:
            application/json:
                schema:
                    type: object
                    properties:
                        datetime:
                            type: date
                            pattern: /([0-9]{4})-(?:[0-9]{2})-([0-9]{2})T([0-9]{2}):(?:[0-9]{2}):(?:[0-9]{2})+(?:[0-9]{2}):(?:[0-9]{2})/
                            example: "2021-06-20T01:02:03+00:00"
                        example: "2021-06-20T01:02:03+00:00"

         content:
            application/json:
                schema:
                    type: object
                    properties:
                        datetime:
                            type: string
                            description: RFC3339 Datetime to set
                            format: date-time
                            example: "2021-06-20T01:02:03+00:00"

都不起作用 - 两者都从浏览器在 Swagger UI 中呈现以下错误:

如何在 OpenAPI 3.0 中正确记录此 RFC3339 DateTime 输入?

您的第二个示例是正确的,并且在 https://editor.swagger.io 中正确呈现 - 如下所示。

第一个示例无效,它会导致渲染错误,因为第二个 example 关键字(datetime 旁边的那个)不应该出现在这个位置。