From 42b9463bc86de1e589eb7897fe55ab2d28f6b55e Mon Sep 17 00:00:00 2001 From: Yuki Watanabe Date: Thu, 16 May 2024 10:04:23 +0900 Subject: [PATCH] update: dependencies --- docs/ja/docs/index.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/docs/ja/docs/index.md b/docs/ja/docs/index.md index c5caf90e0..555196a57 100644 --- a/docs/ja/docs/index.md +++ b/docs/ja/docs/index.md @@ -273,7 +273,9 @@ INFO: Application startup complete. Pydantic によって、Python の標準的な型を使ってボディを宣言します。 -```Python hl_lines="2 7 8 9 10 23 24 25" +```Python hl_lines="4 9-12 25-27" +from typing import Union + from fastapi import FastAPI from pydantic import BaseModel @@ -283,7 +285,7 @@ app = FastAPI() class Item(BaseModel): name: str price: float - is_offer: bool = None + is_offer: Union[bool, None] = None @app.get("/") @@ -292,7 +294,7 @@ def read_root(): @app.get("/items/{item_id}") -def read_item(item_id: int, q: str = None): +def read_item(item_id: int, q: Union[str, None] = None): return {"item_id": item_id, "q": q} @@ -301,7 +303,7 @@ def update_item(item_id: int, item: Item): return {"item_name": item.name, "item_id": item_id} ``` -サーバーは自動でリロードされます。(上述の`uvicorn`コマンドで`--reload`オプションを追加しているからです。) +`fastapi dev` で立ち上げたサーバは、自動的に更新されるはずです。 ### 自動対話型の API ドキュメントのアップグレード @@ -335,7 +337,7 @@ def update_item(item_id: int, item: Item): 新しい構文や特定のライブラリのメソッドやクラスなどを覚える必要はありません。 -単なる標準的な**3.8 以降の Python**です。 +単なる標準的な**Python**です。 例えば、`int`の場合: @@ -431,17 +433,17 @@ item: Item - 非常に強力で使いやすい **依存性注入**システム。 - **JWT トークン**を用いた **OAuth2** や **HTTP Basic 認証** のサポートを含む、セキュリティと認証。 - **深くネストされた JSON モデル**を宣言するためのより高度な(しかし同様に簡単な)技術(Pydantic のおかげです)。 +- Strawberry やその他のライブラリを用いた **GraphQL** との統合。 - 以下のようなたくさんのおまけ機能(Starlette のおかげです): - **WebSockets** - - **GraphQL** - - `httpx` や `pytest`をもとにした極限に簡単なテスト + - HTTPX や `pytest`をもとにした極限に簡単なテスト - **CORS** - **クッキーセッション** - ...などなど。 ## パフォーマンス -独立した TechEmpower のベンチマークでは、Uvicorn で動作する**FastAPI**アプリケーションが、Python フレームワークの中で最も高速なものの 1 つであり、Starlette と Uvicorn(FastAPI で内部的に使用されています)にのみ下回っていると示されています。 +独立した TechEmpower のベンチマークでは、Uvicorn で動作する**FastAPI**アプリケーションが、Python フレームワークの中で最も高速なものの 1 つであり、Starlette と Uvicorn(FastAPI で内部的に使用されています)にのみ下回っていると示されています。(*) 詳細はベンチマークセクションをご覧ください。 @@ -450,23 +452,23 @@ item: Item Pydantic によって使用されるもの: - email_validator - E メールの検証 +* pydantic-settings - 設定管理のため +* pydantic-extra-types - Pydantic によって使用される追加の型 Starlette によって使用されるもの: - httpx - `TestClient`を使用するために必要です。 - jinja2 - デフォルトのテンプレート設定を使用する場合は必要です。 - python-multipart - "parsing"`request.form()`からの変換をサポートしたい場合は必要です。 -- itsdangerous - `SessionMiddleware` サポートのためには必要です。 -- pyyaml - Starlette の `SchemaGenerator` サポートのために必要です。 (FastAPI では必要ないでしょう。) -- graphene - `GraphQLApp` サポートのためには必要です。 FastAPI / Starlette に使用されるもの: - uvicorn - アプリケーションをロードしてサーブするサーバーのため。 - orjson - `ORJSONResponse`を使用したい場合は必要です。 - ujson - `UJSONResponse`を使用する場合は必須です。 +- `fastapi-cli` - `fastapi` コマンドの提供のため -これらは全て `pip install fastapi[all]`でインストールできます。 +`fastapi` をインストールすると、これら標準的な依存関係が付属されます。 ## ライセンス