Sync fastapi docs from d3e6a293 on 2026-06-11

This commit is contained in:
The Librarian
2026-06-11 04:00:10 +00:00
parent dc0739b455
commit 2c5483ee1c
231 changed files with 2503 additions and 4501 deletions
-8
View File
@@ -124,10 +124,6 @@ works(foo="bar") # これは動作します 🎉
//// tab | テスト
/// info | 情報
いくつかのテキスト
///
/// note | 備考
いくつかのテキスト
///
@@ -136,10 +132,6 @@ works(foo="bar") # これは動作します 🎉
いくつかのテキスト
///
/// check | 確認
いくつかのテキスト
///
/// tip | 豆知識
いくつかのテキスト
///
@@ -30,7 +30,6 @@ FastAPI は自動的に **OpenAPI 3.1** の仕様を生成します。したが
例えば、次のようなものがあります:
* [Speakeasy](https://speakeasy.com/editor?utm_source=fastapi+repo&utm_medium=github+sponsorship)
* [Stainless](https://www.stainless.com/?utm_source=fastapi&utm_medium=referral)
* [liblab](https://developers.liblab.com/tutorials/sdk-for-fastapi?utm_source=fastapi)
+23 -23
View File
@@ -36,7 +36,7 @@ Django REST Framework は Tom Christie によって作成されました。Starl
///
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
自動でAPIドキュメントを生成するWebユーザーインターフェースを持っている点。
@@ -56,7 +56,7 @@ Flask は「マイクロフレームワーク」であり、データベース
Flaskのシンプルさを考えると、APIを構築するのに適しているように思えました。次に見つけるべきは、Flask 用の「Django REST Framework」でした。
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
マイクロフレームワークであること。ツールやパーツを目的に合うように簡単に組み合わせられる点。
@@ -98,7 +98,7 @@ def read_url():
`requests.get(...)` と`@app.get(...)` には類似点が見受けられます。
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
* シンプルで直感的なAPIを持っている点。
* HTTPメソッド名を直接利用し、単純で直感的である。
@@ -118,7 +118,7 @@ def read_url():
そのため、バージョン2.0では「Swagger」、バージョン3以上では「OpenAPI」と表記するのが一般的です。
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
独自のスキーマの代わりに、API仕様のオープンな標準を採用しました。
@@ -147,7 +147,7 @@ APIが必要とするもう一つの大きな機能はデータのバリデー
しかし、それはPythonの型ヒントが存在する前に作られたものです。そのため、すべての<dfn title="データがどのように構成されるべきかの定義">スキーマ</dfn>を定義するためには、Marshmallowが提供する特定のユーティリティやクラスを使用する必要があります。
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
コードで「スキーマ」を定義し、データの型やバリデーションを自動で提供する点。
@@ -163,13 +163,13 @@ WebargsはFlaskをはじめとするいくつかのフレームワークの上
素晴らしいツールで、私も**FastAPI**を持つ前はよく使っていました。
/// info | 情報
/// note | 備考
Webargsは、Marshmallowと同じ開発者により作られました。
///
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
受信したデータに対する自動的なバリデーションを持っている点。
@@ -193,13 +193,13 @@ Flask, Starlette, Responderなどにおいてはそのように動作します
エディタでは、この問題を解決することはできません。また、パラメータやMarshmallowスキーマを変更したときに、YAMLのdocstringを変更するのを忘れてしまうと、生成されたスキーマが古くなってしまいます。
/// info | 情報
/// note | 備考
APISpecは、Marshmallowと同じ開発者により作成されました。
///
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
OpenAPIという、APIについてのオープンな標準をサポートしている点。
@@ -225,13 +225,13 @@ Flask、Flask-apispec、Marshmallow、Webargsの組み合わせは、**FastAPI**
そして、これらのフルスタックジェネレーターは、[**FastAPI** Project Generators](project-generation.md)の元となっていました。
/// info | 情報
/// note | 備考
Flask-apispecはMarshmallowと同じ開発者により作成されました。
///
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
シリアライゼーションとバリデーションを定義したコードから、OpenAPIスキーマを自動的に生成する点。
@@ -251,7 +251,7 @@ Angular 2にインスピレーションを受けた、統合された依存性
入れ子になったモデルをうまく扱えません。そのため、リクエストのJSONボディが内部フィールドを持つJSONオブジェクトで、それが順番にネストされたJSONオブジェクトになっている場合、適切にドキュメント化やバリデーションをすることができません。
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
素晴らしいエディターの補助を得るために、Pythonの型ヒントを利用している点。
@@ -271,7 +271,7 @@ Pythonの`asyncio`ループの代わりに、[`uvloop`](https://github.com/Magic
///
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
物凄い性能を出す方法を見つけた点。
@@ -287,7 +287,7 @@ Falconはもう一つの高性能Pythonフレームワークで、ミニマム
そのため、データのバリデーション、シリアライゼーション、ドキュメント化は、自動的にできずコードの中で行わなければなりません。あるいは、HugのようにFalconの上にフレームワークとして実装されなければなりません。このような分断は、パラメータとして1つのリクエストオブジェクトと1つのレスポンスオブジェクトを持つというFalconのデザインにインスピレーションを受けた他のフレームワークでも起こります。
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
素晴らしい性能を得るための方法を見つけた点。
@@ -313,11 +313,11 @@ Pydanticのようなデータのバリデーション、シリアライゼーシ
ルーティングは一つの場所で宣言され、他の場所で宣言された関数を使用します (エンドポイントを扱う関数のすぐ上に配置できるデコレータを使用するのではなく) 。これはFlask (やStarlette) よりも、Djangoに近いです。これは、比較的緊密に結合されているものをコードの中で分離しています。
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
モデルの属性の「デフォルト」値を使用したデータ型の追加バリデーションを定義します。これはエディタの補助を改善するもので、以前はPydanticでは利用できませんでした。
同様の方法でのバリデーションの宣言をサポートするよう、Pydanticを部分的にアップデートするインスピレションを与えました。(現在はこれらの機能は全てPydanticで可能となっています。)
同様の方法でのバリデーションの宣言をサポートするよう、Pydanticを部分的にアップデートするインスピレションを与えました。(現在はこれらの機能は全てPydanticで可能となっています。)
///
@@ -335,13 +335,13 @@ OpenAPIやJSON Schemaのような標準に基づいたものではありませ
以前のPythonの同期型Webフレームワーク標準 (WSGI) をベースにしているため、Websocketなどは扱えませんが、それでも高性能です。
/// info | 情報
/// note | 備考
HugはTimothy Crosleyにより作成されました。彼は[`isort`](https://github.com/timothycrosley/isort)など、Pythonのファイル内のインポートの並び替えを自動的におこうなう素晴らしいツールの開発者です。
///
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
HugはAPIStarに部分的なインスピレーションを与えており、私が発見した中ではAPIStarと同様に最も期待の持てるツールの一つでした。
@@ -375,7 +375,7 @@ Hugは、**FastAPI**がヘッダーやクッキーを設定するために関数
今ではAPIStarはOpenAPI仕様を検証するためのツールセットであり、ウェブフレームワークではありません。
/// info | 情報
/// note | 備考
APIStarはTom Christieにより開発されました。以下の開発者でもあります:
@@ -385,7 +385,7 @@ APIStarはTom Christieにより開発されました。以下の開発者でも
///
/// check | **FastAPI**へ与えたインスピレーション
/// tip | **FastAPI**へ与えたインスピレーション
存在そのもの。
@@ -409,7 +409,7 @@ Pydanticは、Pythonの型ヒントを元にデータのバリデーション、
Marshmallowに匹敵しますが、ベンチマークではMarshmallowよりも高速です。また、Pythonの型ヒントを元にしているので、エディタの補助が素晴らしいです。
/// check | **FastAPI**での使用用途
/// tip | **FastAPI**での使用用途
データのバリデーション、データのシリアライゼーション、自動的なモデルの (JSON Schemaに基づいた) ドキュメント化の全てを扱えます。
@@ -452,7 +452,7 @@ ASGIはDjangoのコアチームメンバーにより開発された新しい「
///
/// check | **FastAPI**での使用用途
/// tip | **FastAPI**での使用用途
webに関するコアな部分を全て扱います。その上に機能を追加します。
@@ -470,7 +470,7 @@ Uvicornは非常に高速なASGIサーバーで、uvloopとhttptoolsにより構
Starletteや**FastAPI**のサーバーとして推奨されています。
/// check | **FastAPI**が推奨する理由
/// tip | **FastAPI**が推奨する理由
**FastAPI**アプリケーションを実行するメインのウェブサーバーである点。
+2 -2
View File
@@ -139,7 +139,7 @@ def results():
<img src="/img/async/concurrent-burgers/concurrent-burgers-07.png" class="illustration">
/// info | 情報
/// note | 備考
美しいイラストは [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot) によるものです。🎨
@@ -205,7 +205,7 @@ def results():
ほとんどの時間をカウンター前で待つ 🕙 のに費やしたため、あまり話したり、いちゃついたりできませんでした。😞
/// info | 情報
/// note | 備考
美しいイラストは [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot) によるものです。🎨
+8 -2
View File
@@ -95,7 +95,7 @@ entrypoint = "backend.main:app"
from backend.main import app
```
### パス指定の `fastapi dev` { #fastapi-dev-with-path }
### パス指定または `--entrypoint` オプション付きの `fastapi dev` { #fastapi-dev-with-path-or-with-entrypoint-cli-option }
`fastapi dev` コマンドにファイルパスを渡すこともでき、使用する FastAPI アプリオブジェクトを推測します:
@@ -103,7 +103,13 @@ 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` を使用することを推奨します。
+4 -4
View File
@@ -36,13 +36,13 @@ from datetime import date
from pydantic import BaseModel
# Declare a variable as a str
# and get editor support inside the function
# 変数を str として宣言
# 関数内でエディタの支援を受ける
def main(user_id: str):
return user_id
# A Pydantic model
# Pydantic モデル
class User(BaseModel):
id: int
name: str
@@ -63,7 +63,7 @@ second_user_data = {
my_second_user: User = User(**second_user_data)
```
/// info
/// note | 備考
`**second_user_data` は次の意味です:
+28 -197
View File
@@ -1,18 +1,12 @@
# FastAPIを応援 - ヘルプの入手 { #help-fastapi-get-help }
# ヘルプ { #help }
**FastAPI** は気に入りましたか?
FastAPI を手助けしたい、または FastAPI についてヘルプが必要ですか?
FastAPIや他のユーザー、作者を応援したいですか?
それとも **FastAPI** についてヘルプが必要ですか?
とても簡単に応援できる方法があります(1、2回クリックするだけのものもあります)。
ヘルプを得る方法もいくつかあります。
応援したりヘルプを得たりする簡単な方法がいくつかあります。
## ニュースレターを購読 { #subscribe-to-the-newsletter }
[**FastAPI and friends** ニュースレター](newsletter.md)(配信はまれです)を購読すると、次の情報をキャッチアップできます:
最新情報を受け取るために、(配信はまれな)[**FastAPI and friends** ニュースレター](newsletter.md)を購読できます:
* FastAPI と関連プロジェクトのニュース 🚀
* ガイド 📝
@@ -20,116 +14,50 @@ FastAPIや他のユーザー、作者を応援したいですか?
* 互換性に影響する変更 🚨
* ヒントやコツ ✅
## X (Twitter) で FastAPI をフォロー { #follow-fastapi-on-x-twitter }
## オンラインで FastAPI をフォロー { #follow-fastapi-online }
[**X (Twitter)** で @fastapi をフォロー](https://x.com/fastapi)して、**FastAPI** の最新情報を受け取りましょう。🐦
以下の場所で **FastAPI** をフォローできます:
* [**X / Twitter** の @fastapi](https://x.com/fastapi)
* [**Bluesky** の @fastapi.tiangolo.com](https://bsky.app/profile/fastapi.tiangolo.com)
* [**LinkedIn** の FastAPI](https://www.linkedin.com/company/fastapi/)
## GitHubで **FastAPI** にStar { #star-fastapi-in-github }
GitHubでFastAPIに「Star」をつけることができます(右上のStarボタンをクリック): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)。⭐️
GitHubでFastAPIに「Star」をつけることができます(右上のStarボタンをクリック): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)。⭐️
スターを増やすことで、他のユーザーの目につきやすくなり、すでに多くの人の役に立っていることが伝わります。
スターが増えると、他のユーザーが見つけやすくなり、すでに多くの人に立っていることが伝わります。
## GitHubレポジトリのリリースをWatch { #watch-the-github-repository-for-releases }
GitHubでFastAPIを「Watch」できます(右上の「Watch」ボタンをクリック): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)。👀
GitHubでFastAPIを「Watch」できます(右上の「Watch」ボタンをクリック): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)。👀
そこで「Releases only」を選択できます。
これを行うと、バグ修正や新機能を含む **FastAPI** の新しいリリース(新バージョン)があるたびに、メールで通知を受け取れます。
これを行うと、バグ修正や新機能を含む **FastAPI** の新しいリリース(新バージョン)があるたびに、メールで通知を受け取れます。
## 開発者とつながる { #connect-with-the-author }
## 作者をフォロー { #follow-the-author }
作者である[私(Sebastián Ramírez / `tiangolo`](https://tiangolo.com)とつながれます
作者である[私(Sebastián Ramírez / `tiangolo`](https://tiangolo.com)をいくつかの場所でフォローして、FastAPI とその仲間に関するニュースを受け取れます:
できること:
* [**GitHub** でフォロー](https://github.com/tiangolo)
* 役に立つかもしれない、私が作成した他のオープンソースプロジェクトを見られます
* 新しいオープンソースプロジェクトを作成したときにわかります。
* [**X (Twitter)** でフォロー](https://x.com/tiangolo) または [Mastodon](https://fosstodon.org/@tiangolo)。
* あなたがどのようにFastAPIを使っているか教えてください(聞けると嬉しいです)。
* 新しいツールの告知やリリースを聞けます。
* さらに、[X (Twitter) の @fastapi](https://x.com/fastapi)(別アカウント)もフォローできます。
* [**LinkedIn** でフォロー](https://www.linkedin.com/in/tiangolo/)。
* 新しいツールの告知やリリースを聞けます(ただしX (Twitter) の方をよく使っています 🤷‍♂)。
* [**Dev.to**](https://dev.to/tiangolo) や [**Medium**](https://medium.com/@tiangolo) で執筆内容を読む(またはフォロー)。
* 私のアイデアや、作成したツールに関する記事を読めます。
* 新しい記事を公開したときに読めます。
## **FastAPI** についてツイート { #tweet-about-fastapi }
[**FastAPI** についてツイート](https://x.com/compose/tweet?text=I'm loving @fastapi because... https://github.com/fastapi/fastapi)して、なぜ気に入っているのかを私や他の人に教えてください。🎉
**FastAPI** がどのように使われているか、どこを気に入っているか、どのプロジェクト/会社で使っているか等、聞けると嬉しいです。
## FastAPIに投票 { #vote-for-fastapi }
* [Slantで **FastAPI** に投票](https://www.slant.co/options/34241/~fastapi-review)。
* [AlternativeToで **FastAPI** に投票](https://alternativeto.net/software/fastapi/about/)。
* [StackShare で **FastAPI** を使っていると宣言](https://stackshare.io/pypi-fastapi)。
* [**GitHub** の @tiangolo](https://github.com/tiangolo)。
* [**X (Twitter)** の @tiangolo](https://x.com/tiangolo)
* [**Bluesky** の @tiangolo.com](https://bsky.app/profile/tiangolo.com)
* [**LinkedIn** の @tiangolo](https://www.linkedin.com/in/tiangolo/)
## GitHubで質問に困っている人を助ける { #help-others-with-questions-in-github }
次の場所で、他の人の質問を手助けできます:
* [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered)
* [GitHub Issues](https://github.com/fastapi/fastapi/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Aquestion+-label%3Aanswered+)
[GitHub Discussions](https://github.com/fastapi/fastapi/discussions/categories/questions?discussions_q=category%3AQuestions+is%3Aunanswered) で、他の人の質問を手助けできます
多くの場合、その質問の答えをすでに知っているかもしれません。🤓
もし多くの人の質問に答えて助けてくれたなら、あなたは公式の[FastAPI Expert](fastapi-people.md#fastapi-experts)になります。🎉
多くの人の質問に答えて助けてくれたなら、あなたは公式の[FastAPI Expert](fastapi-people.md#fastapi-experts)になります。🎉
最も大事なポイントは「親切であること」を心がけることです。人はフラストレーションを抱えてやって来るので、必ずしも最良の聞き方をしているとは限りませんが、できる限り親切に対応しましょう。🤗
最も大事なポイントは「親切であること」を心がけることです。🤗
**FastAPI** コミュニティは親切で歓迎的であることを目指しています。同時に、いじめや他者への無礼な振る舞いは受け入れないでください。お互いを大事にしましょう。
### 手助けの方法 { #how-to-help }
---
以下は(Discussions や Issues で)他の人の質問を手助けする方法です:
### 質問を理解する { #understand-the-question }
* 質問者の「目的」やユースケースを理解できるか確認します。
* 次に、質問(大半は質問です)が「明確」か確認します。
* 多くの場合、ユーザーが想像した解決策についての質問になっていますが、もっと「良い」方法があるかもしれません。問題やユースケースをよりよく理解できれば、より良い「代替解決策」を提案できるかもしれません。
* 質問が理解できない場合は、さらに「詳細」を尋ねます。
### 问題を再現する { #reproduce-the-problem }
多くのケースや質問は、その人の「元のコード」に関係しています。
しばしばコードの断片だけが共有されますが、それでは問題を「再現」するには不十分です。
* ローカルで同じエラーや挙動を確認できるように、またはユースケースをよりよく理解できるように、**コピー&ペースト**して実行できる[最小の再現可能な例](https://stackoverflow.com/help/minimal-reproducible-example)の提供を依頼できます。
* とても寛大な気分なら、問題の説明だけをもとに、あなた自身でそのような**例を作成**してみることもできます。ただし時間がかかる可能性が高いので、まずは問題の明確化を依頼した方が良い場合もあります。
### 解決策を提案する { #suggest-solutions }
* 質問を理解できたら、可能な**回答**を提示できます。
* 多くの場合、相手の「根本的な問題やユースケース」を理解することが重要です。相手が試している方法より良い解決方法があるかもしれないからです。
### クローズを依頼する { #ask-to-close }
もし相手が返信してきて、あなたが問題を解決できたなら、おめでとう、**あなたはヒーロー**です!🦸
* その場合、次のように依頼できます:
* GitHub Discussions: コメントを**回答**としてマークしてもらう。
* GitHub Issues: issue を**クローズ**してもらう。
## GitHubレポジトリをWatch { #watch-the-github-repository }
GitHubでFastAPIを「Watch」できます(右上部の「Watch」ボタンをクリック): [https://github.com/fastapi/fastapi](https://github.com/fastapi/fastapi)。👀
「Releases only」ではなく「Watching」を選択すると、新しい issue や質問が作成されたときに通知を受け取れます。新しい issue のみ、Discussions のみ、PR のみ、など通知対象を絞ることもできます。
その上で、そうした質問の解決を手助けできます。
こちらの[ヘルプの仕方ガイド](https://tiangolo.com/open-source/help/#help-others-with-questions-in-github)に従ってください。
## 質問する { #ask-questions }
@@ -138,100 +66,13 @@ GitHubレポジトリで[新しい質問](https://github.com/fastapi/fastapi/dis
* **質問**をする、または**問題**について尋ねる。
* 新しい**機能**を提案する。
**Note**: もしそうするなら、他の人の手助けもお願いします。😉
## プルリクエストをレビュー { #review-pull-requests }
他の人からのプルリクエストのレビューを手伝ってもらえます。
ここでも、できる限り親切であるようにしてください。🤗
---
プルリクエストをレビューするときのポイントです:
### 問題を理解する { #understand-the-problem }
* まず、そのプルリクエストが解決しようとしている**問題を理解**してください。長めの議論が GitHub Discussion や issue にあるかもしれません。
* その問題は実は**別の方法**で解決でき、プルリクエスト自体が不要な場合もあります。その場合は、その提案や質問をしても良いでしょう。
### スタイルは気にしすぎない { #dont-worry-about-style }
* コミットメッセージのスタイルなどはあまり気にしなくて大丈夫です。私は squash and merge を使い、コミットを手動で調整します。
* スタイルルールについても心配無用です。自動化ツールがすでにチェックしています。
ほかにスタイルや一貫性の要件があれば、私から直接依頼しますし、必要な変更を上に積む形でコミットを追加します。
### コードを確認 { #check-the-code }
* コードを確認して読み、妥当かどうかを見て、**ローカルで実行**し、本当に問題を解決しているか確かめてください。
* そのうえで、それを行ったことを**コメント**で伝えてください。そうすれば、実際に確認してくれたとわかります。
/// info | 情報
残念ながら、承認が複数ついただけのPRを、そのまま信頼することはできません。
説明が魅力的なためか、3件、5件以上の承認がついていても、実際にPRを確認すると壊れていたり、バグがあったり、主張する問題を解決していなかったりすることが何度もありました。😅
ですので、実際にコードを読み、実行して確認し、それをコメントで知らせてもらえることが本当に重要です。🤓
///
* もしPRを簡素化できそうなら、その依頼をしても構いませんが、細かい点にこだわり過ぎる必要はありません。主観的な見方が多く(私にもあります 🙈)、基本的な点に集中できるとより良いでしょう。
### テスト { #tests }
* PRに**テスト**があるか確認を手伝ってください。
* PR前はテストが**失敗**することを確認します。🚨
* そしてPR後にテストが**成功**することを確認します。✅
* 多くのPRにはテストがありません。テストの追加を**リマインド**したり、テストを**提案**したりできます。これは最も時間を消費する部分の一つで、大いに助けになります。
* 何を試したかもコメントしてください。そうすれば、確認してくれたことがわかります。🤓
## プルリクエストを作成 { #create-a-pull-request }
[貢献](contributing.md)として、次のようにプルリクエストでソースコードに貢献できます:
* ドキュメントで見つけたタイポの修正。
* 自分が作成/発見した FastAPI に関する記事・動画・ポッドキャストを、[このファイルを編集](https://github.com/fastapi/fastapi/edit/master/docs/en/data/external_links.yml)して共有。
* 該当セクションの先頭にリンクを追加してください。
* 自分の言語への[ドキュメント翻訳を手伝う](contributing.md#translations)。
* 他の人が作成した翻訳のレビューも手伝えます。
* 新しいドキュメントセクションの提案。
* 既存のissue/バグの修正。
* テストを追加してください。
* 新機能の追加。
* テストを追加してください。
* 関連があればドキュメントも追加してください。
## FastAPIのメンテナンスを手伝う { #help-maintain-fastapi }
**FastAPI** のメンテナンスを手伝ってください!🤓
やることはたくさんあり、その多くは**あなた**にもできます。
今すぐできる主なタスクは次のとおりです:
* [GitHubで質問に困っている人を助ける](#help-others-with-questions-in-github)(上のセクションを参照)。
* [プルリクエストをレビュー](#review-pull-requests)(上のセクションを参照)。
この2つが**最も時間を消費**します。FastAPI のメンテナンス作業の中心です。
これを手伝ってもらえると、**FastAPIのメンテナンスに貢献**し、**より速く・より良く前進**できるようになります。🚀
## チャットに参加 { #join-the-chat }
👥 [Discord チャットサーバー](https://discord.gg/VQjSZaeJmf) 👥 に参加し、FastAPI コミュニティのみんなと交流しましょう。
/// tip | 豆知識
質問は [GitHub Discussions](https://github.com/fastapi/fastapi/discussions/new?category=questions) に投稿してください。そこなら[FastAPI Experts](fastapi-people.md#fastapi-experts)から助けてもらえる可能性がずっと高いです。
質問は GitHub Discussions に投稿してください。その方が助けを受けられる可能性がずっと高いです。
チャットは一般的な会話のみに使いましょう。
@@ -241,16 +82,6 @@ GitHubレポジトリで[新しい質問](https://github.com/fastapi/fastapi/dis
チャットは「自由な会話」がしやすいため、一般的すぎて答えにくい質問になりがちです。そのため、回答が得られない可能性があります。
GitHub では、テンプレートが正しい形で質問を書くのを助けてくれるため、良い回答を得やすくなりますし、質問する前に自分で問題を解決できることもあります。さらにGitHubなら、時間がかかっても私が必ずすべてに回答できるようにできます。チャットでは私個人にはそれができません。😅
GitHub では、テンプレートが正しい形で質問を書くのを助けてくれるため、良い回答を得やすくなりますし、質問する前に自分で問題を解決できることもあります。
チャットの会話はGitHubほど検索しやすくないため、質問と回答が会話に埋もれがちです。そして、[FastAPI Expert](fastapi-people.md#fastapi-experts)になるためにカウントされるのはGitHub上の活動だけです。ですから、GitHubの方が注目を集めやすいでしょう
一方で、チャットには数千人のユーザーがいるため、ほぼ常に誰かと会話できる可能性が高いです。😄
## 作者をスポンサー { #sponsor-the-author }
あなたの**製品/会社**が **FastAPI** に依存している、または関連しており、そのユーザーにリーチしたい場合は、[GitHub sponsors](https://github.com/sponsors/tiangolo) を通じて作者(私)を支援できます。プランに応じて、ドキュメントにバッジが表示されるなどの特典がある場合があります。🎁
---
Thanks! 🚀
また、チャットの会話は GitHub ほど検索しやすくなく、流れてしまいます
+66 -26
View File
@@ -1,3 +1,8 @@
---
include_yaml:
sponsors: data/sponsors.yml
---
# FastAPI { #fastapi }
<style>
@@ -54,18 +59,27 @@ FastAPI は、Python の標準である型ヒントに基づいて Python で AP
### Keystone Sponsor { #keystone-sponsor }
<div class="fastapi-sponsors fastapi-sponsors--keystone">
{% for sponsor in sponsors.keystone -%}
<a href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img src="{{ sponsor.img }}" style="border-radius:15px"></a>
<a class="fastapi-sponsors__card fastapi-sponsors__card--keystone" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}"></a>
{% endfor -%}
</div>
### Gold and Silver Sponsors { #gold-and-silver-sponsors }
### Gold Sponsors { #gold-sponsors }
<div class="fastapi-sponsors fastapi-sponsors--gold">
{% for sponsor in sponsors.gold -%}
<a href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img src="{{ sponsor.img }}" style="border-radius:15px"></a>
<a class="fastapi-sponsors__card fastapi-sponsors__card--gold" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}" loading="lazy"></a>
{% endfor -%}
{%- for sponsor in sponsors.silver -%}
<a href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img src="{{ sponsor.img }}" style="border-radius:15px"></a>
</div>
### Silver Sponsors { #silver-sponsors }
<div class="fastapi-sponsors fastapi-sponsors--silver">
{% for sponsor in sponsors.silver -%}
<a class="fastapi-sponsors__card fastapi-sponsors__card--silver" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}" loading="lazy"></a>
{% endfor %}
</div>
<!-- /sponsors -->
@@ -73,6 +87,44 @@ FastAPI は、Python の標準である型ヒントに基づいて Python で AP
## 評価 { #opinions }
<!-- only-mkdocs -->
<div class="fastapi-opinions" data-fastapi-opinions>
<div class="fastapi-opinions__tabs" role="tablist" aria-label="Companies using FastAPI">
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-microsoft" aria-controls="fo-panel-microsoft" aria-selected="true" tabindex="0">
<span class="fastapi-opinions__mark"><img src="/img/logos/microsoft.svg" alt="Microsoft" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-uber" aria-controls="fo-panel-uber" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/uber.svg" alt="Uber" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-netflix" aria-controls="fo-panel-netflix" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/netflix.svg" alt="Netflix" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-cisco" aria-controls="fo-panel-cisco" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/cisco.svg" alt="Cisco" loading="lazy"></span>
</button>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-microsoft" role="tabpanel" aria-labelledby="fo-tab-microsoft" tabindex="0">
<blockquote class="fastapi-opinions__quote">「最近は **FastAPI** をたくさん使っています。実際、私のチームの **Microsoft の ML サービス** 全てで使用する予定です。そのいくつかはコアな **Windows** 製品や **Office** 製品に統合されつつあります。」</blockquote>
<div class="fastapi-opinions__attr">— Kabir Khan, <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26">(ref)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-uber" role="tabpanel" aria-labelledby="fo-tab-uber" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">「**FastAPI** ライブラリを採用し、クエリで **予測値** を取得できる **REST** サーバを構築しました。」<em>[for Ludwig]</em></blockquote>
<div class="fastapi-opinions__attr">— Piero Molino, Yaroslav Dudin, Sai Sumanth Miryala, <strong>Uber</strong> <a href="https://eng.uber.com/ludwig-v0-2/">(ref)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-netflix" role="tabpanel" aria-labelledby="fo-tab-netflix" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">「<strong>Netflix</strong> は、私たちの <strong>危機管理</strong> オーケストレーションフレームワーク、<strong>Dispatch</strong> のオープンソースリリースを発表できることをうれしく思います!」<em>[built with FastAPI]</em></blockquote>
<div class="fastapi-opinions__attr">— Kevin Glisson, Marc Vilanova, Forest Monsen, <strong>Netflix</strong> <a href="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(ref)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-cisco" role="tabpanel" aria-labelledby="fo-tab-cisco" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">「本番の Python API を構築したい方には、**FastAPI** を強くおすすめします。**美しく設計**され、**使いやすく**、**高いスケーラビリティ**があります。私たちの API ファースト開発戦略の **主要コンポーネント** となりました。」</blockquote>
<div class="fastapi-opinions__attr">— Deon Pillsbury, <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/">(ref)</a></div>
</div>
</div>
<!-- /only-mkdocs -->
<div class="only-github" markdown="1">
"_[...] 最近 **FastAPI** を使っています。 [...] 実際に私のチームの全ての **Microsoft の機械学習サービス** で使用する予定です。 そのうちのいくつかのコアな **Windows** 製品と **Office** 製品に統合されつつあります。_"
<div style="text-align: right; margin-right: 10%;">Kabir Khan - <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26"><small>(ref)</small></a></div>
@@ -91,37 +143,25 @@ FastAPI は、Python の標準である型ヒントに基づいて Python で AP
---
"_私は **FastAPI** にワクワクしています。 めちゃくちゃ楽しいです!_"
<div style="text-align: right; margin-right: 10%;">Brian Okken - <strong>[Python Bytes](https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855) podcast host</strong> <a href="https://x.com/brianokken/status/1112220079972728832"><small>(ref)</small></a></div>
---
"_正直、あなたが作ったものは超堅実で洗練されているように見えます。いろんな意味で、それは私が **Hug** にそうなってほしかったものです。誰かがそれを作るのを見るのは本当に刺激的です。_"
<div style="text-align: right; margin-right: 10%;">Timothy Crosley - <strong>[Hug](https://github.com/hugapi/hug) creator</strong> <a href="https://news.ycombinator.com/item?id=19455465"><small>(ref)</small></a></div>
---
"_REST API を構築するための **モダンなフレームワーク** を学びたい方は、**FastAPI** [...] をチェックしてみてください。 [...] 高速で、使用・習得が簡単です [...]_"
"_私たちの **API****FastAPI** に切り替えました [...] きっと気に入ると思います [...]_"
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong>[Explosion AI](https://explosion.ai) founders - [spaCy](https://spacy.io) creators</strong> <a href="https://x.com/_inesmontani/status/1144173225322143744"><small>(ref)</small></a> - <a href="https://x.com/honnibal/status/1144031421859655680"><small>(ref)</small></a></div>
---
"_本番運用の Python API を構築したい方には、**FastAPI** を強くおすすめします。**美しく設計**されており、**使いやすく**、**高いスケーラビリティ**があります。私たちの API ファースト開発戦略の **主要コンポーネント** となり、Virtual TAC Engineer などの多くの自動化やサービスを推進しています。_"
<div style="text-align: right; margin-right: 10%;">Deon Pillsbury - <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/"><small>(ref)</small></a></div>
---
</div>
## FastAPI Conf { #fastapi-conf }
[**FastAPI Conf '26**](https://fastapiconf.com) は **2026 年 10 月 28 日****オランダ・アムステルダム** で開催されます。FastAPI のすべてを、ソースから直接。🎤
<a class="fastapi-feature-banner" href="https://fastapiconf.com"><img src="https://fastapi.tiangolo.com/img/fastapi-conf.jpeg" alt="FastAPI Conf '26 - 2026年10月28日 - オランダ・アムステルダム"></a>
## FastAPI ミニドキュメンタリー { #fastapi-mini-documentary }
2025 年末に公開された [FastAPI ミニドキュメンタリー](https://www.youtube.com/watch?v=mpR8ngthqiE)があります。オンラインで視聴できます:
<a href="https://www.youtube.com/watch?v=mpR8ngthqiE"><img src="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg" alt="FastAPI Mini Documentary"></a>
<a class="fastapi-feature-banner" href="https://www.youtube.com/watch?v=mpR8ngthqiE"><img src="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg" alt="FastAPI Mini Documentary"></a>
## **Typer**、CLI 版 FastAPI { #typer-the-fastapi-of-clis }
+5 -5
View File
@@ -172,7 +172,7 @@ def some_function(data: Any):
{* ../../docs_src/python_types/tutorial006_py310.py hl[1] *}
/// info | 情報
/// note | 備考
角括弧内の内部の型は「型パラメータ」と呼ばれています。
@@ -265,7 +265,7 @@ def some_function(data: Any):
これは「`one_person` はクラス `Person` の **インスタンス** である」ことを意味します。
「`one_person` は `Person` という名前の **クラス** である」という意味ではありません。
「`one_person` は `Person` という名前の **クラ ス** である」という意味ではありません。
## Pydantic のモデル { #pydantic-models }
@@ -283,9 +283,9 @@ Pydantic の公式ドキュメントからの例:
{* ../../docs_src/python_types/tutorial011_py310.py *}
/// info | 情報
/// note | 備考
[ Pydantic の詳細はドキュメントを参照してください](https://docs.pydantic.dev/)。
[Pydantic の詳細はドキュメントを参照してください](https://docs.pydantic.dev/)。
///
@@ -341,7 +341,7 @@ Python 自体は、この `Annotated` で何かをするわけではありませ
重要なのは、Python の標準的な型を使うことで、(クラスやデコレータなどを追加するのではなく)1 つの場所で **FastAPI** が多くの作業を代わりにやってくれているということです。
/// info | 情報
/// note | 備考
すでにすべてのチュートリアルを終えて、型についての詳細を見るためにこのページに戻ってきた場合は、良いリソースとして [`mypy` の「チートシート`](https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html) があります。
+6 -6
View File
@@ -4,7 +4,7 @@
**FastAPI** は、柔軟性を保ったままアプリケーションを構造化できる便利なツールを提供します。
/// info | 情報
/// note | 備考
Flask 出身であれば、Flask の Blueprint に相当します。
@@ -194,7 +194,7 @@ async def read_item(item_id: str):
///
/// check | 確認
/// tip | 豆知識
`prefix`、`tags`、`responses`、`dependencies` の各パラメータは(ほかの多くのケースと同様に)コード重複を避けるための **FastAPI** の機能です。
@@ -339,7 +339,7 @@ from .routers import items, users
from app.routers import items, users
```
/// info | 情報
/// note | 備考
最初のバージョンは「相対インポート」です:
@@ -382,7 +382,7 @@ from .routers.users import router
{* ../../docs_src/bigger_applications/app_an_py310/main.py hl[10:11] title["app/main.py"] *}
/// info | 情報
/// note | 備考
`users.router` は、ファイル `app/routers/users.py` 内の `APIRouter` を含みます。
@@ -402,7 +402,7 @@ from .routers.users import router
///
/// check | 確認
/// tip | 豆知識
ルーターを取り込んでもパフォーマンスを心配する必要はありません。
@@ -451,7 +451,7 @@ from .routers.users import router
そして、`app.include_router()` で追加したほかの *path operations* と一緒に正しく動作します。
/// info | 非常に技術的な詳細
/// note | 技術詳細
注記: これは非常に技術的な詳細で、**読み飛ばして構いません**。
+1 -1
View File
@@ -72,7 +72,7 @@ from myapp import app
は実行されません。
/// info | 情報
/// note | 備考
より詳しい情報は、[公式Pythonドキュメント](https://docs.python.org/3/library/__main__.html)を参照してください。
+2 -2
View File
@@ -24,7 +24,7 @@
///
/// info | 情報
/// note
ヘッダーを宣言するには、`Header`を使う必要があります。なぜなら、そうしないと、パラメータがクエリのパラメータとして解釈されてしまうからです。
@@ -48,7 +48,7 @@
{* ../../docs_src/header_params/tutorial002_an_py310.py hl[10] *}
/// warning | 注意
/// warning
`convert_underscores``False`に設定する前に、HTTPプロキシやサーバの中にはアンダースコアを含むヘッダーの使用を許可していないものがあることに注意してください。
+9 -8
View File
@@ -2,7 +2,7 @@
Pythonプロジェクトの作業では、**仮想環境**(または類似の仕組み)を使用し、プロジェクトごとにインストールするパッケージを分離するべきでしょう。
/// info | 情報
/// note | 備考
もし、仮想環境の概要や作成方法、使用方法について既にご存知なら、このセクションをスキップした方がよいかもしれません。🤓
@@ -18,7 +18,8 @@ Pythonプロジェクトの作業では、**仮想環境**(または類似の
///
/// info | 情報
/// note | 備考
このページでは、**仮想環境**の使用方法と、そのはたらきについて説明します。
もし**すべてを管理するツール**(Pythonのインストールも含む)を導入する準備ができているなら、[uv](https://github.com/astral-sh/uv) をお試しください。
@@ -554,7 +555,7 @@ Pythonをインストールしたとき、ファイルを含んだいくつか
<div class="termy">
```console
// Don't run this now, it's just an example 🤓
// 今は実行しないでください。これは単なる例です 🤓
$ pip install "fastapi[standard]"
---> 100%
```
@@ -800,7 +801,7 @@ $ cd ~/code/prisoner-of-azkaban
$ python main.py
// Error importing sirius, it's not installed 😱
// sirius のインポートエラー。インストールされていません 😱
Traceback (most recent call last):
File "main.py", line 1, in <module>
import sirius
@@ -808,20 +809,20 @@ Traceback (most recent call last):
</div>
しかし、その仮想環境を無効化し、 `prisoner-of-askaban` のための新しい仮想環境を有効にすれば、 `python` を実行したときに `prisoner-of-azkaban` (アズカバンの囚人)の仮想環境の Python が使用されるようになります。
しかし、その仮想環境を無効化し、 `prisoner-of-azkaban` のための新しい仮想環境を有効にすれば、 `python` を実行したときに `prisoner-of-azkaban` (アズカバンの囚人)の仮想環境の Python が使用されるようになります。
<div class="termy">
```console
$ cd ~/code/prisoner-of-azkaban
// You don't need to be in the old directory to deactivate, you can do it wherever you are, even after going to the other project 😎
// 無効化のために古いディレクトリにいる必要はありません。どこにいても、他のプロジェクトに移動した後でも実行できます 😎
$ deactivate
// Activate the virtual environment in prisoner-of-azkaban/.venv 🚀
// prisoner-of-azkaban/.venv の仮想環境を有効化する 🚀
$ source .venv/bin/activate
// Now when you run python, it will find the package sirius installed in this virtual environment
// これで python を実行すると、この仮想環境にインストールされた sirius パッケージが見つかります
$ python main.py
I solemnly swear 🐺
-1
View File
@@ -1 +0,0 @@
INHERIT: ../en/mkdocs.yml