Skip to content

Latest commit

 

History

History
66 lines (53 loc) · 3.22 KB

extra-data-types.md

File metadata and controls

66 lines (53 loc) · 3.22 KB

追加データ型

今までは、以下のような一般的なデータ型を使用してきました:

  • int
  • float
  • str
  • bool

しかし、より複雑なデータ型を使用することもできます。

そして、今まで見てきたのと同じ機能を持つことになります:

  • 素晴らしいエディタのサポート
  • 受信したリクエストからのデータ変換
  • レスポンスデータのデータ変換
  • データの検証
  • 自動注釈と文書化

他のデータ型

ここでは、使用できる追加のデータ型のいくつかを紹介します:

  • UUID:

    • 多くのデータベースやシステムで共通のIDとして使用される、標準的な「ユニバーサルにユニークな識別子」です。
    • リクエストとレスポンスではstrとして表現されます。
  • datetime.datetime:

    • Pythonのdatetime.datetimeです。
    • リクエストとレスポンスはISO 8601形式のstrで表現されます: 2008-09-15T15:53:00+05:00
  • datetime.date:

    • Pythonのdatetime.dateです。
    • リクエストとレスポンスはISO 8601形式のstrで表現されます: 2008-09-15
  • datetime.time:

    • Pythonのdatetime.time.
    • リクエストとレスポンスはISO 8601形式のstrで表現されます: 14:23:55.003
  • datetime.timedelta:

    • Pythonのdatetime.timedeltaです。
    • リクエストとレスポンスでは合計秒数のfloatで表現されます。
    • Pydanticでは「ISO 8601 time diff encoding」として表現することも可能です。詳細はドキュメントを参照してください
  • frozenset:

    • リクエストとレスポンスではsetと同じように扱われます:
      • リクエストでは、リストが読み込まれ、重複を排除してsetに変換されます。
      • レスポンスではsetlistに変換されます。
      • 生成されたスキーマはsetの値が一意であることを指定します(JSON SchemaのuniqueItemsを使用します)。
  • bytes:

    • Pythonの標準的なbytesです。
    • リクエストとレスポンスではstrとして扱われます。
    • 生成されたスキーマはstrbinaryの「フォーマット」持つことを指定します。
  • Decimal:

    • Pythonの標準的なDecimalです。
    • リクエストやレスポンスではfloatと同じように扱います。
  • Pydanticの全ての有効な型はこちらで確認できます: Pydantic data types

ここでは、上記の型のいくつかを使用したパラメータを持つpath operationの例を示します。

{!../../../docs_src/extra_data_types/tutorial001.py!}

関数内のパラメータは自然なデータ型を持っていることに注意してください。そして、以下のように通常の日付操作を行うことができます:

{!../../../docs_src/extra_data_types/tutorial001.py!}