1. ホーム
  2. swagger

[解決済み] OpenAPI / Swaggerファイルで日付を宣言する正しい方法は何ですか?

2023-05-09 04:13:04

質問

swagger-fileオブジェクトで日付を宣言する正しい方法は何ですか?私はそうだと思う。

  startDate:
    type: string
    description: Start date
    example: "2017-01-01"
    format: date

でも、こんな感じの宣言をよく見かけますね。

  startDate:
    type: string
    description: Start date
    example: "2017-01-01"
    format: date
    pattern: "YYYY-MM-DD"
    minLength: 0
    maxLength: 10

ありがとうございます。

どのように解決するのですか?

この OpenAPI仕様 を使わなければならないと書かれています。

タイプ: 文字列 フォーマット: 日付 # または日付-時間

サポートされるパターンは RFC 3339の5.6節 (事実上 ISO 8601) で定義されており、その例はセクション 5.8 で提供されています。ですから date の値は "2018-03-20" のように見えるはずです。 date-time , "2018-03-20T09:12:28Z". そのため date または date-time というように pattern は不要であり、実際には省略されるべきです。

RFC 3339 と異なる方法でフォーマットされた日付/時刻をサポートする必要がある場合、あなたは ではなく としてパラメータを指定することができます。 format: date または format: date-time . 代わりに format: string を適切な pattern .

最後に pattern"YYYY-MM-DD" は仕様上、無効です。 pattern 正規表現 でなければならず、プレースホルダーやフォーマット文字列ではありません。

OpenAPI仕様からUIを生成するツールのバグを回避するために上記のルールのいずれかに違反している場合、これを回避するために無効なOpenAPI仕様を生成するのではなく、そのツールにバグを上げることを強く検討する必要があります。