mirror of
https://github.com/fastapi/fastapi.git
synced 2026-06-20 13:29:43 -04:00
🌐 Update translations for ja (update-outdated) (#15751)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
c9d3e82500
commit
9871e03c8a
@@ -396,9 +396,9 @@ from .routers.users import router
|
||||
|
||||
/// note | 技術詳細
|
||||
|
||||
実際には、`APIRouter` で宣言された各 *path operation* ごとに内部的に *path operation* が作成されます。
|
||||
FastAPI は、ルーターをメインアプリに取り込んだ後も、元の `APIRouter` とその `APIRoute` を有効なまま保持します。
|
||||
|
||||
つまり裏側では、すべてが同じ単一のアプリであるかのように動作します。
|
||||
そのため、カスタムの `APIRouter` や `APIRoute` のサブクラスも、取り込み後に引き続き機能します。
|
||||
|
||||
///
|
||||
|
||||
@@ -406,7 +406,7 @@ from .routers.users import router
|
||||
|
||||
ルーターを取り込んでもパフォーマンスを心配する必要はありません。
|
||||
|
||||
これは起動時にマイクロ秒で行われます。
|
||||
これは軽量に設計され、各リクエストにオーバーヘッドを追加しないようになっています。
|
||||
|
||||
したがってパフォーマンスには影響しません。⚡
|
||||
|
||||
@@ -461,7 +461,7 @@ from .routers.users import router
|
||||
|
||||
これは、それらの *path operations* を OpenAPI スキーマやユーザーインターフェースに含めたいからです。
|
||||
|
||||
完全に分離して独立に「マウント」できないため、*path operations* は直接取り込まれるのではなく「クローン(再作成)」されます。
|
||||
FastAPI は元のルーターと *path operations* を有効なまま保持し、リクエスト処理や OpenAPI 生成の際に、ルーターの prefix、dependencies、tags、responses、その他のメタデータを組み合わせます。
|
||||
|
||||
///
|
||||
|
||||
@@ -532,4 +532,16 @@ $ fastapi dev
|
||||
router.include_router(other_router)
|
||||
```
|
||||
|
||||
`router` を `FastAPI` アプリに取り込む前にこれを実行して、`other_router` の *path operations* も含まれるようにしてください。
|
||||
これは、`router` を `FastAPI` アプリに取り込む前でも後でも実行できます。FastAPI は `other_router` の *path operations* をルーティングと OpenAPI に含めます。
|
||||
|
||||
同様に、後からルーターに追加された *path operations* も、以前の取り込みを通して見えるようになります。
|
||||
|
||||
/// warning | 注意
|
||||
|
||||
`router` を取り込んだ後に、`router.routes` を直接ミューテートするのは避けてください。FastAPI はルーターの取り込みをライブとして扱うため、元のルーターとそのルートはルーティングと OpenAPI 生成の一部のままです。
|
||||
|
||||
ルートやルーターを追加するには、path operation デコレータや `.include_router()` などのドキュメント化された API を使用してください。
|
||||
|
||||
`router.routes` は、ルート定義や取り込まれたルーターを含みうる低レベルのルートツリーとして扱い、最終的な *path operations* のフラットな一覧として当てにしないでください。
|
||||
|
||||
///
|
||||
|
||||
@@ -110,7 +110,7 @@ q: str | None = None
|
||||
|
||||
{* ../../docs_src/body_multiple_params/tutorial004_an_py310.py hl[28] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`Body`もまた、後述する `Query` や `Path` などと同様に、すべての追加検証パラメータとメタデータパラメータを持っています。
|
||||
|
||||
@@ -125,7 +125,7 @@ Pydanticモデル`Item`の単一の`item`ボディパラメータしかないと
|
||||
しかし、追加のボディパラメータを宣言したときのように、キー `item` を持つ JSON と、その中のモデル内容を期待したい場合は、特別な `Body` パラメータ `embed` を使うことができます:
|
||||
|
||||
```Python
|
||||
item: Item = Body(embed=True)
|
||||
item: Annotated[Item, Body(embed=True)]
|
||||
```
|
||||
|
||||
以下において:
|
||||
|
||||
@@ -135,8 +135,7 @@ Pydanticモデルを`list`や`set`などのサブタイプとして使用する
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`images`キーが画像オブジェクトのリストを持つようになったことに注目してください。
|
||||
|
||||
@@ -148,7 +147,7 @@ Pydanticモデルを`list`や`set`などのサブタイプとして使用する
|
||||
|
||||
{* ../../docs_src/body_nested_models/tutorial007_py310.py hl[7,12,18,21,25] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`Offer`は`Item`のリストであり、それらがさらにオプションの`Image`のリストを持っていることに注目してください。
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ APIはほとんどの場合 **レスポンス** ボディを送信する必要
|
||||
|
||||
**リクエスト**ボディを宣言するには、[Pydantic](https://docs.pydantic.dev/) モデルを使用し、その強力な機能とメリットをすべて利用します。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
データを送信するには、`POST`(より一般的)、`PUT`、`DELETE`、`PATCH` のいずれかを使用すべきです。
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<img src="/img/tutorial/cookie-param-models/image01.png">
|
||||
</div>
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
**ブラウザがクッキーを処理し**ていますが、特別な方法で内部的に処理を行っているために、**JavaScript**からは簡単に操作**できない**ことに留意してください。
|
||||
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
|
||||
///
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
クッキーを宣言するには、`Cookie`を使う必要があります。なぜなら、そうしないとパラメータがクエリのパラメータとして解釈されてしまうからです。
|
||||
|
||||
///
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
**ブラウザがクッキーを**特殊な方法で裏側で扱うため、**JavaScript** から簡単には触れられないことを念頭に置いてください。
|
||||
|
||||
|
||||
@@ -28,11 +28,11 @@
|
||||
|
||||
///
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
この例では、架空のカスタムヘッダー `X-Key` と `X-Token` を使用しています。
|
||||
|
||||
しかし実際のケースでセキュリティを実装する際は、統合された[Security utilities(次の章)](../security/index.md)を使うことで、より多くの利点を得られます。
|
||||
しかし実際のケースでセキュリティを実装する際は、統合された[セキュリティユーティリティ(次の章)](../security/index.md)を使うことで、より多くの利点を得られます。
|
||||
|
||||
///
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
## *path operation*のグループに対する依存関係 { #dependencies-for-a-group-of-path-operations }
|
||||
|
||||
後で、より大きなアプリケーションを(おそらく複数ファイルで)構造化する方法([Bigger Applications - Multiple Files](../../tutorial/bigger-applications.md))について読むときに、*path operation*のグループに対して単一の`dependencies`パラメータを宣言する方法を学びます。
|
||||
後で、より大きなアプリケーションを(おそらく複数ファイルで)構造化する方法([より大きなアプリケーション - 複数ファイル](../../tutorial/bigger-applications.md))について読むときに、*path operation*のグループに対して単一の`dependencies`パラメータを宣言する方法を学びます。
|
||||
|
||||
## グローバル依存関係 { #global-dependencies }
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ participant tasks as Background tasks
|
||||
end
|
||||
```
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
**1つのレスポンス** だけがクライアントに送信されます。それはエラーレスポンスの一つかもしれませんし、*path operation*からのレスポンスかもしれません。
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
そして、これらの値を含む`dict`を返します。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
FastAPI はバージョン 0.95.0 で `Annotated` のサポートを追加し(そして推奨し始めました)。
|
||||
|
||||
@@ -106,7 +106,7 @@ common_parameters --> read_users
|
||||
|
||||
この方法では、共有されるコードを一度書き、**FastAPI** が*path operation*のための呼び出しを行います。
|
||||
|
||||
/// check | 確認
|
||||
/// tip | 豆知識
|
||||
|
||||
特別なクラスを作成してどこかで **FastAPI** に渡して「登録」する必要はないことに注意してください。
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
{* ../../docs_src/dependencies/tutorial005_an_py310.py hl[23] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
*path operation 関数*の中で宣言している依存関係は`query_or_cookie_extractor`の1つだけであることに注意してください。
|
||||
|
||||
|
||||
@@ -180,7 +180,7 @@ entrypoint = "backend.main:app"
|
||||
from backend.main import app
|
||||
```
|
||||
|
||||
### パス付きの`fastapi dev` { #fastapi-dev-with-path }
|
||||
### パス指定の`fastapi dev`または`--entrypoint` CLIオプション { #fastapi-dev-with-path-or-with-entrypoint-cli-option }
|
||||
|
||||
`fastapi dev`コマンドにファイルパスを渡すこともでき、使用すべきFastAPIのappオブジェクトを推測します:
|
||||
|
||||
@@ -188,29 +188,19 @@ from backend.main import app
|
||||
$ fastapi dev main.py
|
||||
```
|
||||
|
||||
ただし、その場合は毎回`fastapi`コマンドを呼ぶたびに正しいパスを渡すことを覚えておく必要があります。
|
||||
または、`fastapi dev`コマンドに`--entrypoint`オプションを渡すこともできます:
|
||||
|
||||
```console
|
||||
$ fastapi dev --entrypoint main:app
|
||||
```
|
||||
|
||||
ただし、その場合は毎回`fastapi`コマンドを呼ぶたびに正しいパスや`entrypoint`を渡すことを覚えておく必要があります。
|
||||
|
||||
さらに、他のツール(たとえば、[VS Code 拡張機能](../editor-support.md)や[FastAPI Cloud](https://fastapicloud.com))が見つけられない場合があります。そのため、`pyproject.toml`の`entrypoint`を使うことを推奨します。
|
||||
|
||||
### アプリをデプロイ(任意) { #deploy-your-app-optional }
|
||||
|
||||
任意でFastAPIアプリを[FastAPI Cloud](https://fastapicloud.com)にデプロイできます。まだなら、待機リストに登録してください。 🚀
|
||||
|
||||
すでに**FastAPI Cloud**アカウントがある場合(待機リストから招待済みの場合😉)、1コマンドでアプリケーションをデプロイできます。
|
||||
|
||||
デプロイする前に、ログインしていることを確認してください:
|
||||
|
||||
<div class="termy">
|
||||
|
||||
```console
|
||||
$ fastapi login
|
||||
|
||||
You are logged in to FastAPI Cloud 🚀
|
||||
```
|
||||
|
||||
</div>
|
||||
|
||||
その後、アプリをデプロイします:
|
||||
任意でFastAPIアプリを[FastAPI Cloud](https://fastapicloud.com)に1コマンドでデプロイできます。 🚀
|
||||
|
||||
<div class="termy">
|
||||
|
||||
@@ -226,6 +216,8 @@ Deploying to FastAPI Cloud...
|
||||
|
||||
</div>
|
||||
|
||||
CLIはFastAPIアプリケーションを自動検出してクラウドにデプロイします。ログインしていない場合、認証を完了するためにブラウザが開きます。
|
||||
|
||||
以上です!これで、そのURLでアプリにアクセスできます。 ✨
|
||||
|
||||
## ステップ毎の要約 { #recap-step-by-step }
|
||||
@@ -269,7 +261,7 @@ https://example.com/items/foo
|
||||
/items/foo
|
||||
```
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
「パス」は一般に「エンドポイント」または「ルート」とも呼ばれます。
|
||||
|
||||
@@ -321,7 +313,7 @@ APIを構築するときは、通常、これらの特定のHTTPメソッドを
|
||||
* パス `/`
|
||||
* <dfn title="HTTP GET メソッド"><code>get</code> オペレーション</dfn>
|
||||
|
||||
/// info | `@decorator` 情報
|
||||
/// note | `@decorator` 情報
|
||||
|
||||
Pythonにおける`@something`シンタックスはデコレータと呼ばれます。
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ OpenAPI 3.1.0 および FastAPI 0.99.0 以降では、`license_info` を `url`
|
||||
|
||||
{* ../../docs_src/metadata/tutorial004_py310.py hl[21,26] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
タグの詳細は [Path Operation の設定](path-operation-configuration.md#tags) を参照してください。
|
||||
|
||||
|
||||
@@ -72,13 +72,13 @@ docstringに[Markdown](https://en.wikipedia.org/wiki/Markdown)を記述すれば
|
||||
|
||||
{* ../../docs_src/path_operation_configuration/tutorial005_py310.py hl[18] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`response_description`は具体的にレスポンスを参照し、`description`は*path operation*全般を参照していることに注意してください。
|
||||
|
||||
///
|
||||
|
||||
/// check | 確認
|
||||
/// tip | 豆知識
|
||||
|
||||
OpenAPIは*path operation*ごとにレスポンスの説明を必要としています。
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
{* ../../docs_src/path_params_numeric_validations/tutorial001_an_py310.py hl[1,3] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
FastAPI はバージョン 0.95.0 で`Annotated`のサポートを追加し(そして推奨し始めました)。
|
||||
|
||||
@@ -131,7 +131,7 @@ Pythonはその`*`で何かをすることはありませんが、それ以降
|
||||
* `lt`: `l`ess `t`han
|
||||
* `le`: `l`ess than or `e`qual
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`Query`、`Path`、および後で見る他のクラスは、共通の`Param`クラスのサブクラスです。
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ Pythonのformat文字列と同様のシンタックスで「パスパラメー
|
||||
|
||||
ここでは、 `item_id` は `int` として宣言されています。
|
||||
|
||||
/// check | 確認
|
||||
/// tip | 豆知識
|
||||
|
||||
これにより、関数内でのエディターサポート (エラーチェックや補完など) が提供されます。
|
||||
|
||||
@@ -34,7 +34,7 @@ Pythonのformat文字列と同様のシンタックスで「パスパラメー
|
||||
{"item_id":3}
|
||||
```
|
||||
|
||||
/// check | 確認
|
||||
/// tip | 豆知識
|
||||
|
||||
関数が受け取った(および返した)値は、文字列の `"3"` ではなく、Pythonの `int` としての `3` であることに注意してください。
|
||||
|
||||
@@ -66,7 +66,7 @@ Pythonのformat文字列と同様のシンタックスで「パスパラメー
|
||||
|
||||
[http://127.0.0.1:8000/items/4.2](http://127.0.0.1:8000/items/4.2) で見られるように、`int` のかわりに `float` が与えられた場合にも同様なエラーが表示されます。
|
||||
|
||||
/// check | 確認
|
||||
/// tip | 豆知識
|
||||
|
||||
したがって、同じPythonの型宣言を使用することで、**FastAPI**はデータのバリデーションを行います。
|
||||
|
||||
@@ -82,7 +82,7 @@ Pythonのformat文字列と同様のシンタックスで「パスパラメー
|
||||
|
||||
<img src="/img/tutorial/path-params/image01.png">
|
||||
|
||||
/// check | 確認
|
||||
/// tip | 豆知識
|
||||
|
||||
繰り返しになりますが、同じPython型宣言を使用するだけで、**FastAPI**は対話的なドキュメントを自動的に生成します(Swagger UIを統合)。
|
||||
|
||||
|
||||
@@ -24,12 +24,12 @@ FastAPIは、 `q` はデフォルト値が `= None` であるため、必須で
|
||||
|
||||
そのために、まずは以下をインポートします:
|
||||
|
||||
* `fastapi` から `Query`
|
||||
* `typing` から `Annotated`
|
||||
- `fastapi` から `Query`
|
||||
- `typing` から `Annotated`
|
||||
|
||||
{* ../../docs_src/query_params_str_validations/tutorial002_an_py310.py hl[1,3] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
FastAPI はバージョン 0.95.0 で `Annotated` のサポートを追加し(推奨し始め)ました。
|
||||
|
||||
@@ -79,9 +79,9 @@ q: Annotated[str | None] = None
|
||||
|
||||
FastAPI は次を行います:
|
||||
|
||||
* 最大長が 50 文字であることを確かめるようデータを **検証** する
|
||||
* データが有効でないときに、クライアントに **明確なエラー** を表示する
|
||||
* OpenAPI スキーマの *path operation* にパラメータを **ドキュメント化** する(その結果、**自動ドキュメント UI** に表示されます)
|
||||
- 最大長が 50 文字であることを確かめるようデータを **検証** する
|
||||
- データが有効でないときに、クライアントに **明確なエラー** を表示する
|
||||
- OpenAPI スキーマの *path operation* にパラメータを **ドキュメント化** する(その結果、**自動ドキュメント UI** に表示されます)
|
||||
|
||||
## 代替(古い方法): デフォルト値としての `Query` { #alternative-old-query-as-the-default-value }
|
||||
|
||||
@@ -174,9 +174,9 @@ FastAPI なしで同じ関数を **別の場所** から **呼び出しても**
|
||||
|
||||
この特定の正規表現パターンは受け取ったパラメータの値をチェックします:
|
||||
|
||||
* `^`: は、これ以降の文字で始まり、これより以前には文字はありません。
|
||||
* `fixedquery`: は、正確な`fixedquery`を持っています.
|
||||
* `$`: で終わる場合、`fixedquery`以降には文字はありません.
|
||||
- `^`: は、これ以降の文字で始まり、これより以前には文字はありません。
|
||||
- `fixedquery`: は、正確な`fixedquery`を持っています.
|
||||
- `$`: で終わる場合、`fixedquery`以降には文字はありません.
|
||||
|
||||
もしこれらすべての **「正規表現」** のアイデアについて迷っていても、心配しないでください。多くの人にとって難しい話題です。正規表現を必要としなくても、まだ、多くのことができます。
|
||||
|
||||
@@ -382,7 +382,7 @@ Pydantic には [`BeforeValidator`](https://docs.pydantic.dev/latest/concepts/va
|
||||
|
||||
{* ../../docs_src/query_params_str_validations/tutorial015_an_py310.py hl[5,16:19,24] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
これは Pydantic バージョン 2 以上で利用できます。 😎
|
||||
|
||||
@@ -432,16 +432,16 @@ Pydantic には [`BeforeValidator`](https://docs.pydantic.dev/latest/concepts/va
|
||||
|
||||
一般的なバリデーションとメタデータ:
|
||||
|
||||
* `alias`
|
||||
* `title`
|
||||
* `description`
|
||||
* `deprecated`
|
||||
- `alias`
|
||||
- `title`
|
||||
- `description`
|
||||
- `deprecated`
|
||||
|
||||
文字列に固有のバリデーション:
|
||||
|
||||
* `min_length`
|
||||
* `max_length`
|
||||
* `pattern`
|
||||
- `min_length`
|
||||
- `max_length`
|
||||
- `pattern`
|
||||
|
||||
`AfterValidator` を使ったカスタムバリデーション。
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ http://127.0.0.1:8000/items/?skip=20
|
||||
|
||||
この場合、関数パラメータ `q` はオプショナルとなり、デフォルトでは `None` になります。
|
||||
|
||||
/// check | 確認
|
||||
/// tip | 豆知識
|
||||
|
||||
パスパラメータ `item_id` はパスパラメータであり、`q` はそれとは違ってクエリパラメータであると判別できるほど**FastAPI** が賢いということにも注意してください。
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
`File` を使って、クライアントがアップロードするファイルを定義できます。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
アップロードされたファイルを受け取るには、まず [`python-multipart`](https://github.com/Kludex/python-multipart) をインストールします。
|
||||
|
||||
@@ -28,7 +28,7 @@ $ pip install python-multipart
|
||||
|
||||
{* ../../docs_src/request_files/tutorial001_an_py310.py hl[9] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`File` は `Form` を直接継承したクラスです。
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
FastAPI では、フォームフィールドを宣言するために **Pydantic モデル**を使用できます。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
フォームを使うには、まず [`python-multipart`](https://github.com/Kludex/python-multipart) をインストールします。
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
`File`と`Form`を同時に使うことでファイルとフォームフィールドを定義することができます。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
アップロードされたファイルやフォームデータを受信するには、まず[`python-multipart`](https://github.com/Kludex/python-multipart)をインストールします。
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
JSONの代わりにフィールドを受け取る場合は、`Form`を使用します。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
フォームを使うためには、まず[`python-multipart`](https://github.com/Kludex/python-multipart)をインストールします。
|
||||
|
||||
@@ -32,7 +32,7 @@ $ pip install python-multipart
|
||||
|
||||
`Form`では`Body`(および`Query`や`Path`、`Cookie`)と同じ設定を宣言することができます。これには、バリデーション、例、エイリアス(例えば`username`の代わりに`user-name`)などが含まれます。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`Form`は`Body`を直接継承するクラスです。
|
||||
|
||||
@@ -56,7 +56,7 @@ HTMLフォーム(`<form></form>`)がサーバにデータを送信する方
|
||||
|
||||
しかし、フォームがファイルを含む場合は、`multipart/form-data`としてエンコードされます。ファイルの扱いについては次の章で説明します。
|
||||
|
||||
これらのエンコーディングやフォームフィールドの詳細については、[<abbr title="Mozilla Developer Network - Mozilla 開発者ネットワーク">MDN</abbr> の `POST` ウェブドキュメント](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST)を参照してください。
|
||||
これらのエンコーディングやフォームフィールドの詳細については、[<abbr title="Mozilla Developer Network - Mozilla 開発者ネットワーク">MDN</abbr> の `POST` のウェブドキュメント](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST)を参照してください。
|
||||
|
||||
///
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ FastAPIはこの `response_model` を使って、データのドキュメント
|
||||
|
||||
{* ../../docs_src/response_model/tutorial002_py310.py hl[7,9] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`EmailStr` を使用するには、最初に [`email-validator`](https://github.com/JoshData/python-email-validator) をインストールしてください。
|
||||
|
||||
@@ -251,7 +251,7 @@ Pydanticフィールドとして有効ではないものを返し、ツール(
|
||||
}
|
||||
```
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
以下も使用できます:
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
`status_code`パラメータはHTTPステータスコードを含む数値を受け取ります。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`status_code`は代わりに、Pythonの[`http.HTTPStatus`](https://docs.python.org/3/library/http.html#http.HTTPStatus)のように、`IntEnum`を受け取ることもできます。
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
///
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
OpenAPI 3.1.0(FastAPI 0.99.0以降で使用)では、**JSON Schema**標準の一部である`examples`がサポートされました。
|
||||
|
||||
@@ -155,7 +155,7 @@ OpenAPIは、仕様の他の部分にも`example`と`examples`フィールドを
|
||||
* `File()`
|
||||
* `Form()`
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
この古いOpenAPI固有の`examples`パラメータは、FastAPI `0.103.0`以降は`openapi_examples`になりました。
|
||||
|
||||
@@ -171,7 +171,7 @@ OpenAPIは、仕様の他の部分にも`example`と`examples`フィールドを
|
||||
|
||||
JSON Schemaのこの新しい`examples`フィールドは、OpenAPIの他の場所(上で説明)にあるような追加メタデータを持つdictではなく、**単なる例の`list`**です。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
OpenAPI 3.1.0がこのJSON Schemaとの新しいよりシンプルな統合とともにリリースされた後も、しばらくの間、自動ドキュメントを提供するツールであるSwagger UIはOpenAPI 3.1.0をサポートしていませんでした(バージョン5.0.0からサポートされています🎉)。
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
## 実行 { #run-it }
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
[`python-multipart`](https://github.com/Kludex/python-multipart) パッケージは、`pip install "fastapi[standard]"` コマンドを実行すると **FastAPI** と一緒に自動的にインストールされます。
|
||||
|
||||
@@ -60,7 +60,7 @@ $ fastapi dev
|
||||
|
||||
<img src="/img/tutorial/security/image01.png">
|
||||
|
||||
/// check | Authorizeボタン!
|
||||
/// tip | Authorizeボタン!
|
||||
|
||||
すでにピカピカの新しい「Authorize」ボタンがあります。
|
||||
|
||||
@@ -118,7 +118,7 @@ OAuth2は、バックエンドやAPIがユーザーを認証するサーバー
|
||||
|
||||
この例では、**Bearer**トークンを使用して**OAuth2**を**Password**フローで使用します。これには`OAuth2PasswordBearer`クラスを使用します。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
「bearer」トークンが、唯一の選択肢ではありません。
|
||||
|
||||
@@ -148,7 +148,7 @@ OAuth2は、バックエンドやAPIがユーザーを認証するサーバー
|
||||
|
||||
実際の path operation もすぐに作ります。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
非常に厳格な「Pythonista」であれば、パラメーター名のスタイルが`tokenUrl`ではなく`token_url`であることを気に入らないかもしれません。
|
||||
|
||||
@@ -176,7 +176,7 @@ oauth2_scheme(some, parameters)
|
||||
|
||||
**FastAPI**は、この依存関係を使用してOpenAPIスキーマ (および自動APIドキュメント) で「セキュリティスキーム」を定義できることを知っています。
|
||||
|
||||
/// info | 技術詳細
|
||||
/// note | 技術詳細
|
||||
|
||||
**FastAPI**は、`OAuth2PasswordBearer` クラス (依存関係で宣言されている) を使用してOpenAPIのセキュリティスキームを定義できることを知っています。これは`fastapi.security.oauth2.OAuth2`、`fastapi.security.base.SecurityBase`を継承しているからです。
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@ Pydanticモデルの `User` として、 `current_user` の型を宣言するこ
|
||||
|
||||
///
|
||||
|
||||
/// check | 確認
|
||||
/// tip | 豆知識
|
||||
|
||||
依存関係システムがこのように設計されているおかげで、 `User` モデルを返却する別の依存関係(別の「dependables」)を持つことができます。
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ $ pip install pyjwt
|
||||
|
||||
</div>
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
RSAやECDSAのようなデジタル署名アルゴリズムを使用する予定がある場合は、cryptographyライブラリの依存関係`pyjwt[crypto]`をインストールしてください。
|
||||
|
||||
@@ -213,7 +213,7 @@ IDの衝突を回避するために、ユーザーのJWTトークンを作成す
|
||||
Username: `johndoe`
|
||||
Password: `secret`
|
||||
|
||||
/// check | 確認
|
||||
/// tip | 豆知識
|
||||
|
||||
コードのどこにも平文のパスワード"`secret`"はなく、ハッシュ化されたものしかないことを確認してください。
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ OAuth2 では、「password flow」(ここで使用するフロー)を使う
|
||||
- `instagram_basic` は Facebook / Instagram で使われます。
|
||||
- `https://www.googleapis.com/auth/drive` は Google で使われます。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
OAuth2 における「スコープ」は、要求される特定の権限を表す単なる文字列です。
|
||||
|
||||
@@ -72,7 +72,7 @@ OAuth2 の仕様では、固定値 `password` を持つフィールド `grant_ty
|
||||
- オプションの `client_id`(この例では不要)
|
||||
- オプションの `client_secret`(この例では不要)
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`OAuth2PasswordRequestForm` は、`OAuth2PasswordBearer` のように **FastAPI** にとって特別なクラスではありません。
|
||||
|
||||
@@ -144,7 +144,7 @@ UserInDB(
|
||||
)
|
||||
```
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
`**user_dict` のより完全な解説は、[**追加モデル**のドキュメント](../extra-models.md#about-user-in-dict)を参照してください。
|
||||
|
||||
@@ -196,7 +196,7 @@ UserInDB(
|
||||
|
||||
{* ../../docs_src/security/tutorial003_an_py310.py hl[58:66,69:74,94] *}
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
ここで返している値が `Bearer` の追加ヘッダー `WWW-Authenticate` も仕様の一部です。
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
これは[JSON Lines のストリーミング](stream-json-lines.md)に似ていますが、`text/event-stream` フォーマットを使用します。これはブラウザがネイティブに [`EventSource` API](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) でサポートしています。
|
||||
|
||||
/// info | 情報
|
||||
/// note
|
||||
|
||||
FastAPI 0.135.0 で追加されました。
|
||||
|
||||
@@ -27,7 +27,7 @@ data: {"name": "Plumbus", "price": 32.99}
|
||||
|
||||
SSE は、AI チャットのストリーミング、ライブ通知、ログやオブザビリティなど、サーバーがクライアントへ更新をプッシュする用途で一般的に使われます。
|
||||
|
||||
/// tip | 豆知識
|
||||
/// tip
|
||||
|
||||
バイナリデータ(例: 動画や音声)をストリーミングしたい場合は、上級ガイド [データのストリーミング](../advanced/stream-data.md) を参照してください。
|
||||
|
||||
@@ -47,7 +47,7 @@ yield された各アイテムは JSON にエンコードされ、SSE イベン
|
||||
|
||||
{* ../../docs_src/server_sent_events/tutorial001_py310.py ln[1:25] hl[10:12,23] *}
|
||||
|
||||
/// tip | 豆知識
|
||||
/// tip
|
||||
|
||||
Pydantic が**Rust** 側でシリアライズを行うため、戻り値の型を宣言しない場合に比べて大幅に**高性能**になります。
|
||||
|
||||
@@ -81,13 +81,13 @@ Pydantic が**Rust** 側でシリアライズを行うため、戻り値の型
|
||||
|
||||
## 生データ { #raw-data }
|
||||
|
||||
JSON エンコードせずにデータを送る必要がある場合は、`data` の代わりに `raw_data` を使用します。
|
||||
JSON エンコードせずにデータを送る必要がある場合は、`raw_data` を使用します。
|
||||
|
||||
これは、整形済みテキスト、ログ行、または `[DONE]` のような特別な <dfn title="特別な条件や状態を示すために用いられる値">"センチネル"</dfn> 値を送るのに有用です。
|
||||
これは、整形済みテキスト、ログ行、または <dfn title="特別な条件や状態を示すために用いられる値">「センチネル」</dfn> といった特別な値(例: `[DONE]`)を送るのに有用です。
|
||||
|
||||
{* ../../docs_src/server_sent_events/tutorial003_py310.py hl[17] *}
|
||||
|
||||
/// note | 備考
|
||||
/// note
|
||||
|
||||
`data` と `raw_data` は相互排他的です。各 `ServerSentEvent` ではどちらか一方しか設定できません。
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
データのシーケンスを**「ストリーム」**で送りたい場合、**JSON Lines** を使って実現できます。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
FastAPI 0.134.0 で追加されました。
|
||||
|
||||
@@ -48,7 +48,7 @@ sequenceDiagram
|
||||
|
||||
これは JSON 配列(Python の list に相当)にとてもよく似ていますが、`[]` で囲まず、アイテム間の `,` もありません。その代わりに、**1 行に 1 つの JSON オブジェクト**で、改行文字で区切られます。
|
||||
|
||||
/// info | 情報
|
||||
/// note | 備考
|
||||
|
||||
重要な点は、クライアントが前の行を消費している間に、アプリ側は次の行を順次生成して送れることです。
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
## `TestClient` を使用 { #using-testclient }
|
||||
|
||||
/// info
|
||||
/// note | 備考
|
||||
|
||||
`TestClient` を使用するには、まず [`httpx`](https://www.python-httpx.org) をインストールします。
|
||||
|
||||
@@ -32,7 +32,7 @@ $ pip install httpx
|
||||
|
||||
{* ../../docs_src/app_testing/tutorial001_py310.py hl[2,12,15:18] *}
|
||||
|
||||
/// tip
|
||||
/// tip | 豆知識
|
||||
|
||||
テスト関数は `async def` ではなく、通常の `def` であることに注意してください。
|
||||
|
||||
@@ -50,7 +50,7 @@ $ pip install httpx
|
||||
|
||||
///
|
||||
|
||||
/// tip
|
||||
/// tip | 豆知識
|
||||
|
||||
FastAPIアプリケーションへのリクエストの送信とは別に、テストで `async` 関数 (非同期データベース関数など) を呼び出したい場合は、高度なチュートリアルの[Async Tests](../advanced/async-tests.md) を参照してください。
|
||||
|
||||
@@ -144,7 +144,7 @@ FastAPIアプリケーションへのリクエストの送信とは別に、テ
|
||||
|
||||
(`httpx` または `TestClient` を使用して) バックエンドにデータを渡す方法の詳細は、[HTTPXのドキュメント](https://www.python-httpx.org)を確認してください。
|
||||
|
||||
/// info
|
||||
/// note | 備考
|
||||
|
||||
`TestClient` は、Pydanticモデルではなく、JSONに変換できるデータを受け取ることに注意してください。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user