コンテンツへスキップ

リリースノート

最新の変更点

ドキュメント

  • 📝 ドキュメント内の小さなタイプミスを修正しました。PR #12213 by @svlandeg.

翻訳

  • 🌐 docs/pt/docs/deployment/cloud.md のポルトガル語訳を追加しました。PR #12217 by @marcelomarkus.
  • ✏️ docs/es/docs/python-types.md のタイプミスを修正しました。PR #12235 by @JavierSanchezCastro.
  • 🌐 docs/nl/docs/environment-variables.md のオランダ語訳を追加しました。PR #12200 by @maxscheijen.
  • 🌐 docs/pt/docs/deployment/manually.md のポルトガル語訳を追加しました。PR #12210 by @JoaoGustavoRogel.
  • 🌐 docs/pt/docs/deployment/server-workers.md のポルトガル語訳を追加しました。PR #12220 by @marcelomarkus.
  • 🌐 docs/pt/docs/how-to/configure-swagger-ui.md のポルトガル語訳を追加しました。PR #12222 by @marcelomarkus.

内部

  • 🔧 スポンサーを更新し、Fine.dev を削除しました。PR #12271 by @tiangolo.
  • ⬆ [pre-commit.ci] pre-commit 自動更新。PR #12253 by @pre-commit-ci[bot].
  • ✏️ http セキュリティのドキュメントストリングのタイプミスを修正しました。PR #12223 by @albertvillanova.

0.115.0

ハイライト

Pydanticモデルを使用して、QueryHeader、およびCookieパラメータを宣言できるようになりました。🎉

Query パラメータモデル

QueryパラメータにPydanticモデルを使用する

from typing import Annotated, Literal

from fastapi import FastAPI, Query
from pydantic import BaseModel, Field

app = FastAPI()


class FilterParams(BaseModel):
    limit: int = Field(100, gt=0, le=100)
    offset: int = Field(0, ge=0)
    order_by: Literal["created_at", "updated_at"] = "created_at"
    tags: list[str] = []


@app.get("/items/")
async def read_items(filter_query: Annotated[FilterParams, Query()]):
    return filter_query

新しいドキュメントはこちら: クエリパラメータモデル.

Headerパラメータモデル

HeaderパラメータにPydanticモデルを使用する

from typing import Annotated

from fastapi import FastAPI, Header
from pydantic import BaseModel

app = FastAPI()


class CommonHeaders(BaseModel):
    host: str
    save_data: bool
    if_modified_since: str | None = None
    traceparent: str | None = None
    x_tag: list[str] = []


@app.get("/items/")
async def read_items(headers: Annotated[CommonHeaders, Header()]):
    return headers

新しいドキュメントはこちら: ヘッダーパラメータモデル.

CookieパラメータにPydanticモデルを使用する

from typing import Annotated

from fastapi import Cookie, FastAPI
from pydantic import BaseModel

app = FastAPI()


class Cookies(BaseModel):
    session_id: str
    fatebook_tracker: str | None = None
    googall_tracker: str | None = None


@app.get("/items/")
async def read_items(cookies: Annotated[Cookies, Cookie()]):
    return cookies

新しいドキュメントはこちら: クッキーパラメータモデル.

Pydanticモデルを使用して、Queryパラメータの余分な値を制限します(HeaderおよびCookieパラメータにも適用されます)。

これを実現するには、Pydanticのmodel_config = {"extra": "forbid"}を使用します。

from typing import Annotated, Literal

from fastapi import FastAPI, Query
from pydantic import BaseModel, Field

app = FastAPI()


class FilterParams(BaseModel):
    model_config = {"extra": "forbid"}

    limit: int = Field(100, gt=0, le=100)
    offset: int = Field(0, ge=0)
    order_by: Literal["created_at", "updated_at"] = "created_at"
    tags: list[str] = []


@app.get("/items/")
async def read_items(filter_query: Annotated[FilterParams, Query()]):
    return filter_query

これはQueryHeader、およびCookieパラメータに適用されます。新しいドキュメントを参照してください。

機能

  • QueryCookieHeaderを使用するパラメータに対するPydanticモデルのサポートを追加しました。PR #12199 by @tiangolo.

翻訳

  • 🌐 docs/pt/docs/advanced/security/http-basic-auth.mdにポルトガル語翻訳を追加しました。PR #12195 by @ceb10n.

内部

0.114.2

修正

  • 🐛 aliasを使用した場合のフォームフィールドの回帰を修正しました。PR #12194 by @Wurstnase.

翻訳

  • 🌐 docs/pt/docs/tutorial/request-form-models.mdにポルトガル語翻訳を追加しました。PR #12175 by @ceb10n.
  • 🌐 docs/zh/docs/project-generation.mdに中国語翻訳を追加しました。PR #12170 by @waketzheng.
  • 🌐 docs/nl/docs/python-types.mdにオランダ語翻訳を追加しました。PR #12158 by @maxscheijen.

内部

  • 💡 Playwrightスクリーンショットスクリプトの指示付きコメントを追加しました。PR #12193 by @tiangolo.
  • ➕ テスト用のインラインスナップショットを追加しました。PR #12189 by @tiangolo.

0.114.1

リファクタ

  • ⚡️ 内部モデルフィールドのキャッシュを使用して、リクエストボディの解析のパフォーマンスを向上させました。PR #12184 by @tiangolo.

ドキュメント

  • 📝 docs/en/docs/environment-variables.mdのドキュメントの重複行を削除しました。PR #12169 by @prometek.

翻訳

  • 🌐 docs/pt/docs/virtual-environments.mdにポルトガル語翻訳を追加しました。PR #12163 by @marcelomarkus.
  • 🌐 docs/pt/docs/environment-variables.mdにポルトガル語翻訳を追加しました。PR #12162 by @marcelomarkus.
  • 🌐 docs/pt/docs/tutorial/testing.mdにポルトガル語翻訳を追加しました。PR #12164 by @marcelomarkus.
  • 🌐 docs/pt/docs/tutorial/debugging.mdにポルトガル語翻訳を追加しました。PR #12165 by @marcelomarkus.
  • 🌐 docs/ko/docs/project-generation.mdに韓国語翻訳を追加しました。PR #12157 by @BORA040126.

内部

0.114.0

フォームフィールドをPydanticモデルで宣言されたもののみに制限し、Pydanticのmodel_config = {"extra": "forbid"}を使用してリクエストで送信された余分なフィールドを禁止できます。

from typing import Annotated

from fastapi import FastAPI, Form
from pydantic import BaseModel

app = FastAPI()


class FormData(BaseModel):
    username: str
    password: str
    model_config = {"extra": "forbid"}


@app.post("/login/")
async def login(data: Annotated[FormData, Form()]):
    return data

新しいドキュメントはこちら: フォームモデル - 余分なフォームフィールドの禁止

機能

  • ✨ Pydanticモデルを使用した余分なフォームフィールドの禁止のサポートを追加しました。PR #12134 by @tiangolo.

ドキュメント

  • 📝 ドキュメントのフォームモデルセクションのタイトルを構成名に一致するように更新しました。PR #12152 by @tiangolo.

内部

  • ✅ 最新のPydanticの内部テストを更新し、最新のPydanticをインストールするためのCI調整を含めました。PR #12147 by @tiangolo.

0.113.0

Pydanticモデルを使用してフォームフィールドを宣言できるようになりました

from typing import Annotated

from fastapi import FastAPI, Form
from pydantic import BaseModel

app = FastAPI()


class FormData(BaseModel):
    username: str
    password: str


@app.post("/login/")
async def login(data: Annotated[FormData, Form()]):
    return data

新しいドキュメントはこちら: フォームモデル

機能

  • FormパラメータでのPydanticモデルのサポートを追加しました。PR #12129 by @tiangolo.

内部

  • 🔧 スポンサーを更新: Coherenceリンク。PR #12130 by @tiangolo.

0.112.4

このリリースは、主にFormフィールドのPydanticモデルのサポートを追加できるようにするための大規模な内部リファクタです。ただし、その機能は次のリリースで提供されます。

このリリースは、FastAPIを使用するアプリに何の影響も与えないはずです。このバージョンにまだアップグレードする必要もありません。これは単なるチェックポイントです。🤓

リファクタ

  • ♻️ embedボディフィールドを決定し、フィールドを上書きせず、ルーターごとに1回計算し、FormQueryなどのPydanticモデルの準備のために内部をリファクタリングしました。PR #12117 by @tiangolo.

内部

  • ⏪️ チェックポイントリリースを作成するために、「✨ FormパラメータでのPydanticモデルのサポートを追加」を一時的に元に戻しました。PR #12128 by @tiangolo. PR #12129によって復元されました。
  • FormパラメータでのPydanticモデルのサポートを追加しました。PR #12127 by @tiangolo. リファクタのみのチェックポイントリリースを作成するために、PR #12128によって元に戻されました。PR #12129によって復元されました。

0.112.3

このリリースは主に内部リファクタリングであり、FastAPIを使用するアプリに何の影響も与えないはずです。このバージョンにまだアップグレードする必要もありません。直後にいくつかの大きなリリースが予定されています。🚀

リファクタ

  • ♻️ 内部のcheck_file_field()をリファクタリングし、その目的を明確にするためにensure_multipart_is_installed()に名前を変更しました。PR #12106 by @tiangolo.
  • ♻️ 内部のcreate_response_field()を、応答モデル以外にも使用されるため、create_model_field()に名前を変更しました。PR #12103 by @tiangolo.
  • ♻️ dataclassesを使用して、solve_dependencies()からの内部データをリファクタリングおよび簡素化しました。PR #12100 by @tiangolo.
  • ♻️ 内部のanalyze_param()をリファクタリングし、タプルではなくdataclassesでデータを構造化するように簡素化しました。PR #12099 by @tiangolo.
  • ♻️ dataclassesを使用して、依存関係のデータ構造をリファクタリングおよび簡素化しました。PR #12098 by @tiangolo.

ドキュメント

  • 📝 外部リンクを追加しました: FastAPIでのSQLAlchemyグローバルフィルターのテクニックとアプリケーション。PR #12109 by @TheShubhendra.
  • 📝 ミドルウェアでtime.perf_counter()に関するメモを追加しました。PR #12095 by @tiangolo.
  • 📝 ミドルウェアのコードサンプルtime.time()time.perf_counter()に微調整しました。PR #11957 by @domdent.
  • 🔧 スポンサーを更新: Coherence。PR #12093 by @tiangolo.
  • 📝 非同期テストの例がDeprecationWarningをトリガーしないように修正しました。PR #12084 by @marcinsulikowski.
  • 📝 docs_src/path_params_numeric_validations/tutorial006.pyを更新しました。PR #11478 by @MuhammadAshiqAmeer.
  • 📝 docs/en/docs/async.mdのカンマを更新しました。PR #12062 by @Alec-Gillis.
  • 📝 FastAPIの提供に関するドキュメントを更新しました: ASGIサーバー、Dockerコンテナなど。PR #12069 by @tiangolo.
  • 📝 response_classパラメータ、検証、および応答を直接返すことを明確にしました。PR #12067 by @tiangolo.
  • 📝 ドキュメントの小さなタイプミスと問題を修正しました。PR #12063 by @svlandeg.
  • 📝 Dockerドキュメントに、CMD exec形式を使用したグレースフルシャットダウンとライフサイクルイベントの確保に関するメモを追加しました。PR #11960 by @GPla.

翻訳

  • 🌐 docs/nl/docs/features.mdにオランダ語翻訳を追加しました。PR #12101 by @maxscheijen.
  • 🌐 docs/pt/docs/advanced/testing-events.mdにポルトガル語翻訳を追加しました。PR #12108 by @ceb10n.
  • 🌐 docs/pt/docs/advanced/security/index.mdにポルトガル語翻訳を追加しました。PR #12114 by @ceb10n.
  • 🌐 docs/nl/docs/index.mdにオランダ語翻訳を追加しました。PR #12042 by @svlandeg.
  • 🌐 docs/zh/docs/how-to/index.mdの中国語翻訳を更新しました。PR #12070 by @synthpop123.

内部

  • ⬆ [pre-commit.ci] pre-commit autoupdate。PR #12115 by @pre-commit-ci[bot].
  • ⬆ pypa/gh-action-pypi-publishを1.10.0から1.10.1に更新しました。PR #12120 by @dependabot[bot].
  • ⬆️ pillow を 10.3.0 から 10.4.0 に更新しました。PR #12105 by @dependabot[bot]
  • 💚 upload-artifact GH アクションを使用する際、include-hidden-filesTrue に設定しました。PR #12118 by @svlandeg
  • ⬆️ pypa/gh-action-pypi-publish を 1.9.0 から 1.10.0 に更新しました。PR #12112 by @dependabot[bot]
  • 🔧 スポンサーリンクを更新: Coherence。PR #12097 by @tiangolo
  • 🔧 スポンサーシップデータを処理するようにラベラーの設定を更新しました。PR #12096 by @tiangolo
  • 🔧 スポンサーを更新、Kong を削除しました。PR #12085 by @tiangolo
  • ⬆️ [pre-commit.ci] pre-commit 自動更新。PR #12076 by @pre-commit-ci[bot]
  • 👷 latest-changes GitHub アクションを更新しました。PR #12073 by @tiangolo

0.112.2

修正

  • 🐛 Param および Body クラスの allow_inf_nan オプションを修正しました。PR #11867 by @giunio-prc
  • 🐛 app.include_router がネストされたライフスパンをマージするように修正しました。PR #9630 by @Lancetnik

リファクタリング

  • 🎨 セミインターナルな FastAPI.add_api_route() の型アノテーションを修正しました。PR #10240 by @ordinary-jamie
  • ⬆️ Ruff のバージョンをアップグレードし、再フォーマットしました。PR #12032 by @tiangolo

ドキュメント

  • 📝 docs/en/docs/virtual-environments.md のタイプミスを修正しました。PR #12064 by @aymenkrifa
  • 📝 環境変数と仮想環境に関するドキュメントを追加しました。PR #12054 by @tiangolo
  • 📝 非同期ドキュメントに Asyncer の言及を追加しました。PR #12037 by @tiangolo
  • 📝 メインページのメニューを改善するために、機能ドキュメントをトップレベルに移動しました。PR #12036 by @tiangolo
  • ✏️ Security の参照例でインポートのタイプミスを修正しました。PR #11168 by @0shah0
  • 📝 チュートリアル docs/en/docs/tutorial/body-multiple-params.md で正しい行をハイライトしました。PR #11978 by @svlandeg
  • 🔥 高度なミドルウェアのドキュメントから Sentry へのリンクを削除しました。PR #12031 by @alejsdev
  • 📝 翻訳に関する管理タスク、1つのPRに複数のファイルを含める場合について明確にしました。PR #12030 by @tiangolo
  • 📝 OpenAPI の「レスポンスオブジェクト」と「レスポンスオブジェクト」セクションへのリンクを、「OpenAPIの追加レスポンス」セクションで修正しました。PR #11996 by @VaitoSoi
  • 🔨 email-validator の依存関係をダッシュ付きで指定しました。PR #11515 by @jirikuncar
  • 🌐 docs/es/docs/project-generation.md のスペイン語翻訳を追加しました。PR #11947 by @alejsdev
  • 📝 軽微なタイプミスを修正しました。PR #12026 by @MicaelJarniac
  • 📝 ドキュメントの改善、調整、明確化をいくつか行いました。PR #11390 by @nilslindemann
  • 📝 GZipMiddleware のドキュメントに不足していた compresslevel パラメータを追加しました。PR #11350 by @junah201
  • 📝 テストに関するドキュメントで、項目がすでに存在する場合のレスポンスコードの不整合を修正しました。PR #11818 by @lokomilo
  • 📝 docs/en/docs/tutorial/body.md を Python 3.10 の union 型の例で更新しました。PR #11415 by @rangzen

翻訳

  • 🌐 docs/pt/docs/tutorial/request_file.md のポルトガル語翻訳を追加しました。PR #12018 by @Joao-Pedro-P-Holanda
  • 🌐 docs/ja/docs/learn/index.md の日本語翻訳を追加しました。PR #11592 by @ukwhatn
  • 📝 一貫性を保つため、スペイン語翻訳ドキュメントを更新しました。PR #12044 by @alejsdev
  • 🌐 docs/zh/docs/tutorial/dependencies/dependencies-with-yield.md の中国語翻訳を更新しました。PR #12028 by @xuvjso
  • 📝 FastAPI のメンバーを更新しました。最新情報を得るため、翻訳は行わないでください。PR #12034 by @tiangolo
  • 🌐 docs/ur/docs/benchmarks.md のウルドゥー語翻訳を更新しました。PR #10046 by @AhsanSheraz

内部

  • ⬆️ [pre-commit.ci] pre-commit 自動更新。PR #12046 by @pre-commit-ci[bot]
  • 🔧 カバレッジ設定ファイルを更新しました。PR #12035 by @tiangolo
  • 🔨 シェルスクリプト全体で shebang を標準化しました。PR #11942 by @gitworkflows
  • ⬆️ sqlalchemy の要件を <1.4.43,>=1.3.18 から >=1.3.18,<2.0.33 に更新しました。PR #11979 by @dependabot[bot]
  • 🔊 古い無視警告を削除しました。PR #11950 by @tiangolo
  • ⬆️ ドキュメント用に griffe-typingdoc をアップグレードしました。PR #12029 by @tiangolo
  • 🙈 .gitignore に .coverage* を追加しました。PR #11940 by @gitworkflows
  • ⚙️ テストカバレッジのコンテキスト(どのテストがどの行をカバーしているか)を記録して表示します。PR #11518 by @slafs

0.112.1

アップグレード

  • ⬆️ Starlette 0.38.x を許可し、ピンを >=0.37.2,<0.39.0 に更新しました。PR #11876 by @musicinmybrain

ドキュメント

  • 📝 「翻訳しないページ」に関するドキュメントセクションを更新しました。PR #12022 by @tiangolo
  • 📝 翻訳されていないページとそれらを検証するスクリプトのドキュメントを追加しました。PR #12020 by @tiangolo
  • 📝 ディスカッションに関する質問のドキュメントを更新しました。PR #11985 by @tiangolo

翻訳

  • 🌐 docs/pt/docs/tutorial/bigger-applications.md のポルトガル語翻訳を追加しました。PR #11971 by @marcelomarkus
  • 🌐 docs/pt/docs/advanced/testing-websockets.md のポルトガル語翻訳を追加しました。PR #11994 by @ceb10n
  • 🌐 docs/pt/docs/advanced/testing-dependencies.md のポルトガル語翻訳を追加しました。PR #11995 by @ceb10n
  • 🌐 docs/pt/docs/advanced/using-request-directly.md のポルトガル語翻訳を追加しました。PR #11956 by @ceb10n
  • 🌐 docs/fr/docs/tutorial/body-multiple-params.md のフランス語翻訳を追加しました。PR #11796 by @pe-brian
  • 🌐 docs/zh/docs/tutorial/query-params.md の中国語翻訳を更新しました。PR #11557 by @caomingpei
  • 🌐 docs/zh/docs/advanced/testing-dependencies.md の中国語翻訳のタイプミスを更新しました。PR #11944 by @bestony
  • 🌐 docs/pt/docs/advanced/sub-applications.md および docs/pt/docs/advanced/behind-a-proxy.md のポルトガル語翻訳を追加しました。PR #11856 by @marcelomarkus
  • 🌐 docs/pt/docs/tutorial/cors.md および docs/pt/docs/tutorial/middleware.md のポルトガル語翻訳を追加しました。PR #11916 by @wesinalves
  • 🌐 docs/fr/docs/tutorial/path-params-numeric-validations.md のフランス語翻訳を追加しました。PR #11788 by @pe-brian

内部

  • ⬆️ pypa/gh-action-pypi-publish を 1.8.14 から 1.9.0 に更新しました。PR #11727 by @dependabot[bot]
  • 🔧 pyproject.toml に変更ログの URL を追加しました。PyPI に表示されます。PR #11152 by @Pierre-VF
  • 👷 手動で追加したラベルを上書きするため、ラベルを同期しないようにしました。PR #12024 by @tiangolo
  • 👷🏻 ラベラー GitHub アクションを更新しました。PR #12019 by @tiangolo
  • 🔧 言語とソーシャルカード用の MkDocs の設定を更新しました。PR #12016 by @tiangolo
  • 👷 ラベラー GitHub アクションのアクセス許可と設定を更新しました。PR #12008 by @tiangolo
  • 👷🏻 GitHub アクション label-checker を追加しました。PR #12005 by @tiangolo
  • 👷 ラベルチェッカー GitHub アクションを追加しました。PR #12004 by @tiangolo
  • 👷 GitHub アクション add-to-project を更新しました。PR #12002 by @tiangolo
  • 🔧 ラベラー GitHub アクションを更新しました。PR #12001 by @tiangolo
  • 👷 GitHub アクション ラベラーを追加しました。PR #12000 by @tiangolo
  • 👷 GitHub アクション add-to-project を追加しました。PR #11999 by @tiangolo
  • 📝 ドキュメントで不足していたアドモニションを更新しました。PR #11998 by @tiangolo
  • 🔨 条件付きでダーティリロードを有効にするように docs.py スクリプトを更新しました。PR #11986 by @tiangolo
  • 🔧 MkDocs のインスタントプレビューを更新しました。PR #11982 by @tiangolo
  • 🐛 mkdocs.yml ファイルを処理するようにドキュメントプレビューのデプロイスクリプトを修正しました。PR #11984 by @tiangolo
  • 💡 カスタム Termynal の行の高さに関するコメントを追加しました。PR #11976 by @tiangolo
  • 👷 test-redistributeにalls-greenを追加。PR #11974 by @tiangolo
  • 👷 ドキュメントの変更がない場合を処理するようにdocs-previewsを更新。PR #11975 by @tiangolo
  • 🔨 末尾のスラッシュがある場合とない場合のデプロイURLを考慮するようにスクリプトdeploy_docs_status.pyをリファクタリング。PR #11965 by @tiangolo
  • 🔒️ deploy-docsアクションの権限を更新。PR #11964 by @tiangolo
  • 👷🏻 PRにドキュメントのデプロイ状況とプレビューリンクを追加。PR #11961 by @tiangolo
  • 🔧 最新の設定とプラグインでドキュメントの設定を更新。PR #11953 by @tiangolo
  • 🔇 Trioのattrsからの警告を無視。PR #11949 by @tiangolo

0.112.0

破壊的変更

  • ♻️ 標準依存関係付きのpip install "fastapi[standard]"python -m fastapiのサポートを追加。PR #11935 by @tiangolo

概要

インストール方法

pip install "fastapi[standard]"

その他の変更

  • これにより、CLIを次のように呼び出すサポートが追加されます。
python -m fastapi
  • そして、fastapi-cli[standard] >=0.0.5 にアップグレードします。

技術的な詳細

これまでは、fastapi には、Uvicornやfastapi-cliなどの標準依存関係が含まれていました。

そして、fastapi-slimにはそれらの標準依存関係は含まれていませんでした。

現在、fastapi は、pip install "fastapi[standard]" でインストールしない限り、これらの標準依存関係は含まれません。

以前は、pip install fastapi でインストールしていましたが、標準オプション依存関係を含める必要があります(それらのいずれかを除外したい場合を除き):pip install "fastapi[standard]"

この変更は、標準オプションの依存関係がデフォルトでインストールされていることが、一部のユーザーにとって不便であり、代わりに fastapi-slim をインストールする必要があることは実現可能な解決策ではなかったためです。

ここで議論されています: #11522 および こちら: #11525

ドキュメント

  • ✏️ ドキュメントのタイプミスを修正。PR #11926 by @jianghuyiyuan
  • 📝 管理ドキュメントを調整。PR #11918 by @tiangolo
  • 🚚 GitHubリンクをtiangolo/fastapiからfastapi/fastapiにリネーム。PR #11913 by @tiangolo
  • 📝 FastAPIチームとプロジェクト管理に関するドキュメントを追加。PR #11908 by @tiangolo
  • 📝 ドキュメントのメインメニューを再構成。PR #11904 by @tiangolo
  • 📝 SpeakeasyのURLを更新。PR #11871 by @ndimares

翻訳

  • 🌐 docs/pt/docs/alternatives.mdのポルトガル語翻訳を更新。PR #11931 by @ceb10n
  • 🌐 docs/ru/docs/tutorial/dependencies/sub-dependencies.mdのロシア語翻訳を追加。PR #10515 by @AlertRED
  • 🌐 docs/pt/docs/advanced/response-change-status-code.mdのポルトガル語翻訳を追加。PR #11863 by @ceb10n
  • 🌐 docs/pt/docs/reference/background.mdのポルトガル語翻訳を追加。PR #11849 by @lucasbalieiro
  • 🌐 docs/pt/docs/tutorial/dependencies/dependencies-with-yield.mdのポルトガル語翻訳を追加。PR #11848 by @Joao-Pedro-P-Holanda
  • 🌐 docs/pt/docs/reference/apirouter.mdのポルトガル語翻訳を追加。PR #11843 by @lucasbalieiro

内部

  • 🔧 スポンサーを更新:liblabを追加。PR #11934 by @tiangolo
  • 👷 GitHub Actionのlabel-approved権限を更新。PR #11933 by @tiangolo
  • 👷 ドキュメントのデプロイURLをコメントし、トークンを更新するようにGitHub Actionをリファクタリング。PR #11925 by @tiangolo
  • 👷 GitHub Actionsのトークンを更新。PR #11924 by @tiangolo
  • 👷 ドキュメントのデプロイURLをコメントするためのトークン権限を更新。PR #11917 by @tiangolo
  • 👷 GitHub Actionsのトークン権限を更新。PR #11915 by @tiangolo
  • 👷 GitHub Actionsのトークン使用を更新。PR #11914 by @tiangolo
  • 👷 ラベルapproved-1で翻訳を通知するようにGitHub Actionを更新。PR #11907 by @tiangolo
  • 🔧 スポンサーを更新、Reflexを削除。PR #11875 by @tiangolo
  • 🔧 スポンサーを更新:TalkPythonを削除。PR #11861 by @tiangolo
  • 🔨 ローカル開発では行番号を含めないようにドキュメントのTermynalスクリプトを更新。PR #11854 by @tiangolo

0.111.1

アップグレード

  • ➖ デフォルトの依存関係からorjsonujsonを削除。PR #11842 by @tiangolo
    • これらの依存関係は、pip install "fastapi[all]"でインストールするとインストールされます。ただし、pip install fastapiには含まれていません。
  • 📝 Swagger-UIリンクを可能な限り最新バージョンを使用するように復元。PR #11459 by @UltimateLobster

ドキュメント

  • ✏️ docs/en/docs/fastapi-cli.mdの言い換え。PR #11716 by @alejsdev
  • 📝 すべてのドキュメントのHypercornリンクを更新。PR #11744 by @kittydoor
  • 📝 StarletteからFastAPIへのAriadne参照を使用してドキュメントを更新。PR #11797 by @DamianCzajkowski
  • 📝 fastapiインストルメンテーションの外部リンクを更新。PR #11317 by @softwarebloat
  • ✏️ ドキュメント内のalembicサンプルリポジトリへのリンクを修正。PR #11628 by @augiwan
  • ✏️ docs/en/docs/fastapi-cli.mdを更新。PR #11715 by @alejsdev
  • 📝 外部リンクを更新。PR #11500 by @devon2018
  • 📝 外部リンクを追加:Tutorial de FastAPI, ¿el mejor framework de Python?. PR #11618 by @EduardoZepeda
  • 📝 docs/en/docs/tutorial/body-multiple-params.mdのタイプミスを修正。PR #11698 by @mwb-u
  • 📝 外部リンクを追加:Deploy a Serverless FastAPI App with Neon Postgres and AWS App Runner at any scale。PR #11633 by @ananis25
  • 📝 security/first-steps.mdを更新。PR #11674 by @alejsdev
  • 📝 security/first-steps.mdを更新。PR #11673 by @alejsdev
  • 📝 path-params-numeric-validations.mdのノートを更新。PR #11672 by @alejsdev
  • 📝 AnnotatedおよびQuery()パラメーターに関する入門ドキュメントを調整。PR #11664 by @tiangolo
  • 📝 JWT認証ドキュメントをpyhon-joseの代わりにPyJWTを使用するように更新。PR #11589 by @estebanx64
  • 📝 ドキュメントを更新。PR #11603 by @alejsdev
  • ✏️ タイプミスを修正:「re-use」をすべて「reuse」に変換。PR #11598 by @hasansezertasan
  • ✏️ fastapi/applications.pyのタイプミスを修正。PR #11593 by @petarmaric
  • ✏️ fastapi-cli.mdのリンクを修正。PR #11524 by @svlandeg

翻訳

  • 🌐 docs/es/docs/how-to/graphql.mdのスペイン語翻訳を追加。PR #11697 by @camigomezdev
  • 🌐 docs/pt/docs/reference/index.mdのポルトガル語翻訳を追加。PR #11840 by @lucasbalieiro
  • 🌐 ドイツ語翻訳のリンクを修正。PR #11836 by @anitahammer
  • 🌐 docs/pt/docs/tutorial/dependencies/sub-dependencies.mdのポルトガル語翻訳を追加。PR #11792 by @Joao-Pedro-P-Holanda
  • 🌐 docs/tr/docs/tutorial/request-forms.mdのトルコ語翻訳を追加。PR #11553 by @hasansezertasan
  • 🌐 docs/pt/docs/reference/exceptions.mdのポルトガル語翻訳を追加。PR #11834 by @lucasbalieiro
  • 🌐 docs/pt/docs/tutorial/dependencies/global-dependencies.mdのポルトガル語翻訳を追加。PR #11826 by @Joao-Pedro-P-Holanda
  • 🌐 docs/pt/docs/how-to/general.mdのポルトガル語翻訳を追加。PR #11825 by @lucasbalieiro
  • 🌐 docs/pt/docs/advanced/async-tests.mdのポルトガル語翻訳を追加。PR #11808 by @ceb10n
  • 🌐 docs/uk/docs/tutorial/first-steps.mdのウクライナ語翻訳を追加。PR #11809 by @vkhoroshchak
  • 🌐 docs/pt/docs/tutorial/dependencies/dependencies-in-path-operation-operators.md のポルトガル語翻訳を追加しました。PR #11804 by @Joao-Pedro-P-Holanda.
  • 🌐 docs/zh/docs/fastapi-cli.md の中国語翻訳を追加しました。PR #11786 by @logan2d5.
  • 🌐 docs/pt/docs/advanced/openapi-webhooks.md のポルトガル語翻訳を追加しました。PR #11791 by @ceb10n.
  • 🌐 docs/tutorial/security/oauth2-jwt.md の中国語翻訳を更新しました。PR #11781 by @logan2d5.
  • 📝 docs/fr/docs/async.md のフランス語翻訳で画像が欠落していたのを修正しました。PR #11787 by @pe-brian.
  • 🌐 docs/pt/docs/advanced/advanced-dependencies.md のポルトガル語翻訳を追加しました。PR #11775 by @ceb10n.
  • 🌐 docs/pt/docs/tutorial/dependencies/classes-as-dependencies.md のポルトガル語翻訳を追加しました。PR #11768 by @Joao-Pedro-P-Holanda.
  • 🌐 docs/pt/docs/advanced/additional-status-codes.md のポルトガル語翻訳を追加しました。PR #11753 by @ceb10n.
  • 🌐 docs/pt/docs/tutorial/dependencies/index.md のポルトガル語翻訳を追加しました。PR #11757 by @Joao-Pedro-P-Holanda.
  • 🌐 docs/pt/docs/advanced/settings.md のポルトガル語翻訳を追加しました。PR #11739 by @Joao-Pedro-P-Holanda.
  • 🌐 docs/fr/docs/learn/index.md のフランス語翻訳を追加しました。PR #11712 by @benjaminvandammeholberton.
  • 🌐 docs/pt/docs/how-to/index.md のポルトガル語翻訳を追加しました。PR #11731 by @vhsenna.
  • 🌐 docs/pt/docs/advanced/additional-responses.md のポルトガル語翻訳を追加しました。PR #11736 by @ceb10n.
  • 🌐 docs/pt/docs/advanced/benchmarks.md のポルトガル語翻訳を追加しました。PR #11713 by @ceb10n.
  • 🌐 docs/ko/docs/tutorial/response-status-code.md の韓国語翻訳を修正しました。PR #11718 by @nayeonkinn.
  • 🌐 docs/ko/docs/tutorial/extra-data-types.md の韓国語翻訳を追加しました。PR #11711 by @nayeonkinn.
  • 🌐 docs/ko/docs/tutorial/body-nested-models.md の韓国語翻訳を修正しました。PR #11710 by @nayeonkinn.
  • 🌐 docs/pt/docs/advanced/fastapi-cli.md のポルトガル語翻訳を追加しました。PR #11641 by @ayr-ton.
  • 🌐 docs/zh-hant/docs/fastapi-people.md の繁体字中国語翻訳を追加しました。PR #11639 by @hsuanchi.
  • 🌐 docs/tr/docs/advanced/index.md のトルコ語翻訳を追加しました。PR #11606 by @hasansezertasan.
  • 🌐 docs/tr/docs/deployment/cloud.md のトルコ語翻訳を追加しました。PR #11610 by @hasansezertasan.
  • 🌐 docs/tr/docs/advanced/security/index.md のトルコ語翻訳を追加しました。PR #11609 by @hasansezertasan.
  • 🌐 docs/tr/docs/advanced/testing-websockets.md のトルコ語翻訳を追加しました。PR #11608 by @hasansezertasan.
  • 🌐 docs/tr/docs/how-to/general.md のトルコ語翻訳を追加しました。PR #11607 by @hasansezertasan.
  • 🌐 docs/zh/docs/advanced/templates.md の中国語翻訳を更新しました。PR #11620 by @chaoless.
  • 🌐 docs/tr/docs/deployment/index.md のトルコ語翻訳を追加しました。PR #11605 by @hasansezertasan.
  • 🌐 docs/tr/docs/tutorial/static-files.md のトルコ語翻訳を追加しました。PR #11599 by @hasansezertasan.
  • 🌐 docs/pl/docs/fastapi-people.md のポーランド語翻訳を修正しました。PR #10196 by @isulim.
  • 🌐 docs/tr/docs/advanced/wsgi.md のトルコ語翻訳を追加しました。PR #11575 by @hasansezertasan.
  • 🌐 docs/tr/docs/tutorial/cookie-params.md のトルコ語翻訳を追加しました。PR #11561 by @hasansezertasan.
  • 🌐 docs/ru/docs/about/index.md のロシア語翻訳を追加しました。PR #10961 by @s111d.
  • 🌐 docs/zh/docs/tutorial/sql-databases.md の中国語翻訳を更新しました。PR #11539 by @chaoless.
  • 🌐 docs/zh/docs/how-to/configure-swagger-ui.md の中国語翻訳を追加しました。PR #11501 by @Lucas-lyh.
  • 🌐 /docs/advanced/security/http-basic-auth.md の中国語翻訳を更新しました。PR #11512 by @nick-cjyx9.

Internal

  • ♻️ 内部ドキュメントスクリプトを簡略化しました。PR #11777 by @gitworkflows.
  • 🔧 スポンサーを更新しました: Fineを追加。PR #11784 by @tiangolo.
  • 🔧 スポンサーを調整しました: KongのURL。PR #11765 by @tiangolo.
  • 🔧 スポンサーを調整しました: KongのURL。PR #11764 by @tiangolo.
  • 🔧 スポンサーを更新し、Stainlessを追加しました。PR #11763 by @tiangolo.
  • 🔧 スポンサーを更新し、Zuploを追加しました。PR #11729 by @tiangolo.
  • 🔧 スポンサーリンクを更新しました: Coherence。PR #11730 by @tiangolo.
  • 👥 FastAPI Peopleを更新しました。PR #11669 by @tiangolo.
  • 🔧 スポンサーKongを追加しました。PR #11662 by @tiangolo.
  • 👷 Smokeshowを更新し、同期ダウンロードアーティファクトとSmokeshowの設定を修正しました。PR #11563 by @tiangolo.
  • 👷 SmokeshowダウンロードアーティファクトのGitHub Actionを更新しました。PR #11562 by @tiangolo.
  • 👷 ドキュメントとカバレッジのために、アーティファクトをv4にダウンロードおよびアップロードするGitHubアクションを更新しました。PR #11550 by @tamird.
  • 👷 test-redistributeのCIを調整し、slimに必要な環境変数を追加しました。PR #11549 by @tiangolo.
  • 👥 FastAPI Peopleを更新しました。PR #11511 by @tiangolo.

0.111.0

Features

  • ✨ 新しいfastapiコマンドであるFastAPI CLIを追加しました。PR #11522 by @tiangolo.

以下でお試しください

$ pip install --upgrade fastapi

$ fastapi dev main.py


 ╭────────── FastAPI CLI - Development mode ───────────╮
 │                                                     │
 │  Serving at: http://127.0.0.1:8000                  │
 │                                                     │
 │  API docs: http://127.0.0.1:8000/docs               │
 │                                                     │
 │  Running in development mode, for production use:   │
 │                                                     │
 │  fastapi run                                        │
 │                                                     │
 ╰─────────────────────────────────────────────────────╯

INFO:     Will watch for changes in these directories: ['/home/user/code/awesomeapp']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [2248755] using WatchFiles
INFO:     Started server process [2248757]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

Refactors

  • 🔧 オプションのextras fastapi-slim[standard]を含むfastapi-slim、およびデフォルトで同じstandard extrasを含むfastapiの構成とセットアップを追加しました。PR #11503 by @tiangolo.

0.110.3

Docs

  • 📝 Pythonバージョンの参照を更新しました。FastAPIは現在のすべてのバージョンをサポートしているため、バージョンを明示的にする必要はありません。PR #11496 by @tiangolo.
  • ✏️ fastapi/security/api_key.py のタイプミスを修正しました。PR #11481 by @ch33zer.
  • ✏️ security/http.py のタイプミスを修正しました。PR #11455 by @omarmoo5.

Translations

  • 🌐 docs/zh-hant/benchmarks.md の繁体字中国語翻訳を追加しました。PR #11484 by @KNChiu.
  • 🌐 docs/zh/docs/fastapi-people.md の中国語翻訳を更新しました。PR #11476 by @billzhong.
  • 🌐 docs/zh/docs/how-to/index.md および docs/zh/docs/how-to/general.md の中国語翻訳を追加しました。PR #11443 by @billzhong.
  • 🌐 cookie-params docs/es/docs/tutorial/cookie-params.md のスペイン語翻訳を追加しました。PR #11410 by @fabianfalon.

Internal

  • ⬆ mkdocstrings[python] を0.23.0から0.24.3に上げました。PR #11469 by @dependabot[bot].
  • 🔨 内部スクリプトを更新し、未使用のスクリプトを削除しました。PR #11499 by @tiangolo.
  • 🔧 内部ビルドのためにHatchからPDMに移行しました。PR #11498 by @tiangolo.
  • ⬆️ MkDocs Materialをアップグレードし、カードを再度有効にしました。PR #11466 by @tiangolo.
  • ⬆ pillowを10.2.0から10.3.0に上げました。PR #11403 by @dependabot[bot].
  • 🔧 dependabotの更新をグループ化解除しました。PR #11465 by @tiangolo.

0.110.2

Fixes

  • 🐛 リスト型を持つクエリパラメーターのサポートを修正し、PydanticのUndefinedTypeのJSONエンコードを処理しました。PR #9929 by @arjwilliams.

Refactors

  • ♻️ fastapi/openapi/models.pyのOpenAPIモデルでPydanticの構成を簡略化しました。PR #10886 by @JoeTanto2.
  • ✨ Pydanticの2.7の新しい非推奨のFieldパラメーターのサポートを追加し、検証エラーレスポンスからURLを削除しました。PR #11461 by @tiangolo.

Docs

  • 📝 docs_src/extra_data_typesの下の例で型を修正しました。PR #10535 by @nilslindemann.
  • 📝 UJSONへの参照を更新しました。PR #11464 by @tiangolo.
  • 📝 ドキュメントと翻訳リンク、タイプミス、フォーマットを調整しました。PR #11389 by @nilslindemann.
  • 📝 docs/es/docs/async.md のタイプミスを修正しました。PR #11400 by @fabianfalon.
  • 📝 OpenAPIクライアント生成ドキュメントを @hey-api/openapi-ts を使用するように更新しました。PR #11339 by @jordanshatford.

翻訳

  • 🌐 docs/zh/docs/index.html の中国語翻訳を更新しました。PR #11430 by @waketzheng.
  • 🌐 docs/ru/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md のロシア語翻訳を追加しました。PR #11411 by @anton2yakovlev.
  • 🌐 learn/index.md resources/index.md help/index.md about/index.md のポルトガル語翻訳を追加しました。PR #10807 by @nazarepiedady.
  • 🌐 デプロイメントドキュメントのロシア語翻訳を更新しました。PR #11271 by @Lufa1u.
  • 🌐 docs/bn/docs/python-types.md のベンガル語翻訳を追加しました。PR #11376 by @imtiaz101325.
  • 🌐 docs/ko/docs/tutorial/security/simple-oauth2.md の韓国語翻訳を追加しました。PR #5744 by @KdHyeon0661.
  • 🌐 docs/ko/docs/help-fastapi.md の韓国語翻訳を追加しました。PR #4139 by @kty4119.
  • 🌐 docs/ko/docs/advanced/events.md の韓国語翻訳を追加しました。PR #5087 by @pers0n4.
  • 🌐 docs/ja/docs/tutorial/path-operation-configuration.md の日本語翻訳を追加しました。PR #1954 by @SwftAlpc.
  • 🌐 docs/ja/docs/tutorial/request-forms-and-files.md の日本語翻訳を追加しました。PR #1946 by @SwftAlpc.
  • 🌐 docs/ru/docs/tutorial/dependencies/dependencies-with-yield.md のロシア語翻訳を追加しました。PR #10532 by @AlertRED.
  • 🌐 docs/ko/docs/tutorial/debugging.md の韓国語翻訳を追加しました。PR #5695 by @JungWooGeon.

内部

  • ⬆️ ドキュメントのtyperのバージョンをアップグレードしました。PR #11393 by @tiangolo.

0.110.1

修正

  • 🐛 ジェネリクスを使用したパラメーターなしの Depends() を修正しました。PR #9479 by @nzig.

リファクタリング

  • ♻️ mypyを更新しました。PR #11049 by @k0t3n.
  • ♻️ fastapi/applications.py でのf-stringを使用した文字列形式を簡略化しました。PR #11335 by @igeni.

アップグレード

  • ⬆️ Starletteを>=0.37.2,<0.38.0にアップグレードし、内部テスト用のStarlette filterwarningを削除しました。PR #11266 by @nothielf.

ドキュメント

  • 📝 ドキュメントと翻訳リンクを調整し、古いドキュメントの翻訳を削除しました。PR #11381 by @tiangolo.
  • ✏️ fastapi/security/oauth2.py のタイプミスを修正しました。PR #11368 by @shandongbinzhou.
  • 📝 Pydanticドキュメントへのリンクを新しいウェブサイトを指すように更新しました。PR #11328 by @alejsdev.
  • ✏️ docs/en/docs/tutorial/extra-models.md のタイプミスを修正しました。PR #11329 by @alejsdev.
  • 📝 project-generation.md を更新しました。PR #11326 by @alejsdev.
  • 📝 外部リンクを更新しました。PR #11327 by @alejsdev.
  • 🔥 Pydanticのベンチマークへのリンクを他のi18nページから削除しました。PR #11224 by @hirotoKirimaru.
  • ✏️ ドキュメント文字列のタイプミスを修正しました。PR #11295 by @davidhuser.
  • 🛠️ TypeScriptクライアントを生成するためにドキュメント内のNode.jsスクリプトを改善しました。PR #11293 by @alejsdev.
  • 📝 テストの例を "inexistent" から "nonexistent" に置き換えるように更新しました。PR #11220 by @Homesteady.
  • 📝 すべてのドキュメントで python-multipart のGitHubリンクを https://andrew-d.github.io/python-multipart/ から https://github.com/Kludex/python-multipart に更新しました。PR #11239 by @joshjhans.

翻訳

  • 🌐 docs/de/docs/tutorial/response-status-code.md のドイツ語翻訳を追加しました。PR #10357 by @nilslindemann.
  • 🌐 docs/zh/docs/tutorial/query-params.md の中国語翻訳を更新しました。PR #3480 by @jaystone776.
  • 🌐 docs/zh/docs/tutorial/body.md の中国語翻訳を更新しました。PR #3481 by @jaystone776.
  • 🌐 docs/zh/docs/tutorial/path-params.md の中国語翻訳を更新しました。PR #3479 by @jaystone776.
  • 🌐 docs/tutorial/body-fields.md の中国語翻訳を更新しました。PR #3496 by @jaystone776.
  • 🌐 docs/tutorial/extra-models.md の中国語翻訳を更新しました。PR #3497 by @jaystone776.
  • 🌐 docs/ja/docs/tutorial/metadata.md の日本語翻訳を追加しました。PR #2667 by @tokusumi.
  • 🌐 docs/de/docs/contributing.md のドイツ語翻訳を追加しました。PR #10487 by @nilslindemann.
  • 🌐 docs/ja/docs/tutorial/query-params.md の日本語翻訳を更新しました。PR #10808 by @urushio.
  • 🌐 docs/zh/docs/tutorial/security/get-current-user.md の中国語翻訳を更新しました。PR #3842 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/openapi-callbacks.md の中国語翻訳を追加しました。PR #3825 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/extending-openapi.md の中国語翻訳を追加しました。PR #3823 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/testing-dependencies.md の中国語翻訳を追加しました。PR #3819 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/custom-request-and-route.md の中国語翻訳を追加しました。PR #3816 by @jaystone776.
  • 🌐 docs/zh/docs/external-links.md の中国語翻訳を追加しました。PR #3833 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/templates.md の中国語翻訳を追加しました。PR #3812 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/sub-applications.md の中国語翻訳を追加しました。PR #3811 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/async-sql-databases.md の中国語翻訳を追加しました。PR #3805 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/middleware.md の中国語翻訳を追加しました。PR #3804 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/dataclasses.md の中国語翻訳を追加しました。PR #3803 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/using-request-directly.md の中国語翻訳を追加しました。PR #3802 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/security/http-basic-auth.md の中国語翻訳を追加しました。PR #3801 by @jaystone776.
  • 🌐 docs/zh/docs/advanced/security/oauth2-scopes.md の中国語翻訳を追加しました。PR #3800 by @jaystone776.
  • 🌐 docs/zh/docs/tutorial/cookie-params.md の中国語翻訳を更新しました。PR #3486 by @jaystone776.
  • 🌐 docs/zh/docs/tutorial/header-params.md の中国語翻訳を更新しました。PR #3487 by @jaystone776.
  • 🌐 docs/tutorial/response-status-code.md の中国語翻訳を更新しました。PR #3498 by @jaystone776.
  • 🌐 docs/de/docs/tutorial/security/first-steps.md のドイツ語翻訳を追加しました。PR #10432 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/events.md のドイツ語翻訳を追加しました。PR #10693 by @nilslindemann.
  • 🌐 docs/de/docs/deployment/cloud.md のドイツ語翻訳を追加しました。PR #10746 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/behind-a-proxy.md のドイツ語翻訳を追加しました。PR #10675 by @nilslindemann.
  • 🌐 docs/de/docs/help-fastapi.md のドイツ語翻訳を追加しました。PR #10455 by @nilslindemann.
  • 🌐 docs/de/docs/python-types.md のドイツ語翻訳を更新しました。PR #10287 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/path-params.md のドイツ語翻訳を追加しました。PR #10290 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/handling-errors.md のドイツ語翻訳を追加しました。PR #10379 by @nilslindemann.
  • 🌐 docs/de/docs/index.md のドイツ語翻訳を更新しました。PR #10283 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/security/http-basic-auth.md のドイツ語翻訳を追加しました。PR #10651 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/bigger-applications.md のドイツ語翻訳を追加しました。PR #10554 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/path-operation-advanced-configuration.md のドイツ語翻訳を追加しました。PR #10612 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/static-files.md のドイツ語翻訳を追加しました。PR #10584 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/security/oauth2-jwt.md のドイツ語翻訳を追加しました。PR #10522 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/response-model.md のドイツ語翻訳を追加しました。PR #10345 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/extra-models.md のドイツ語翻訳を追加しました。PR #10351 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/body-updates.md のドイツ語翻訳を追加しました。PR #10396 by @nilslindemann.
  • 🌐 docs/de/docs/alternatives.md のドイツ語翻訳を追加しました。PR #10855 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/templates.md のドイツ語翻訳を追加しました。PR #10678 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/security/oauth2-scopes.md のドイツ語翻訳を追加しました。PR #10643 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/async-tests.md のドイツ語翻訳を追加しました。PR #10708 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/metadata.md のドイツ語翻訳を追加しました。PR #10581 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/testing.md のドイツ語翻訳を追加しました。PR #10586 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/schema-extra-example.md のドイツ語翻訳を追加しました。PR #10597 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/index.md のドイツ語翻訳を追加しました。PR #10611 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/response-directly.md のドイツ語翻訳を追加しました。PR #10618 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/additional-responses.md のドイツ語翻訳を追加しました。PR #10626 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/response-cookies.md のドイツ語翻訳を追加しました。PR #10627 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/response-headers.md のドイツ語翻訳を追加しました。PR #10628 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/response-change-status-code.md のドイツ語翻訳を追加しました。PR #10632 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/advanced-dependencies.md のドイツ語翻訳を追加しました。PR #10633 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/security/index.md のドイツ語翻訳を追加しました。PR #10635 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/using-request-directly.md のドイツ語翻訳を追加しました。PR #10653 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/dataclasses.md のドイツ語翻訳を追加しました。PR #10667 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/middleware.md のドイツ語翻訳を追加しました。PR #10668 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/sub-applications.md のドイツ語翻訳を追加しました。PR #10671 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/websockets.md のドイツ語翻訳を追加しました。PR #10687 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/testing-websockets.md のドイツ語翻訳を追加しました。PR #10703 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/testing-events.md のドイツ語翻訳を追加しました。PR #10704 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/testing-dependencies.md のドイツ語翻訳を追加しました。PR #10706 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/openapi-callbacks.md のドイツ語翻訳を追加しました。PR #10710 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/settings.md のドイツ語翻訳を追加しました。PR #10709 by @nilslindemann.
  • 🌐 docs/de/docs/advanced/wsgi.md のドイツ語翻訳を追加しました。PR #10713 by @nilslindemann.
  • 🌐 docs/de/docs/deployment/index.md のドイツ語翻訳を追加しました。PR #10733 by @nilslindemann.
  • 🌐 docs/de/docs/deployment/https.md のドイツ語翻訳を追加しました。PR #10737 by @nilslindemann.
  • 🌐 docs/de/docs/deployment/manually.md のドイツ語翻訳を追加しました。PR #10738 by @nilslindemann.
  • 🌐 docs/de/docs/deployment/concepts.md のドイツ語翻訳を追加しました。PR #10744 by @nilslindemann.
  • 🌐 docs/de/docs/features.md のドイツ語翻訳を更新しました。PR #10284 by @nilslindemann.
  • 🌐 docs/de/docs/deployment/server-workers.md のドイツ語翻訳を追加しました。PR #10747 by @nilslindemann.
  • 🌐 docs/de/docs/deployment/docker.md のドイツ語翻訳を追加しました。PR #10759 by @nilslindemann.
  • 🌐 docs/de/docs/how-to/index.md のドイツ語翻訳を追加しました。PR #10769 by @nilslindemann.
  • 🌐 docs/de/docs/how-to/general.md のドイツ語翻訳を追加しました。PR #10770 by @nilslindemann.
  • 🌐 docs/de/docs/how-to/graphql.md のドイツ語翻訳を追加しました。PR #10788 by @nilslindemann.
  • 🌐 docs/de/docs/how-to/custom-request-and-route.md のドイツ語翻訳を追加しました。PR #10789 by @nilslindemann.
  • 🌐 docs/de/docs/how-to/conditional-openapi.md のドイツ語翻訳を追加しました。PR #10790 by @nilslindemann.
  • 🌐 docs/de/docs/how-to/separate-openapi-schemas.md のドイツ語翻訳を追加しました。PR #10796 by @nilslindemann.
  • 🌐 docs/de/docs/how-to/configure-swagger-ui.md のドイツ語翻訳を追加しました。PR #10804 by @nilslindemann.
  • 🌐 docs/de/docs/how-to/custom-docs-ui-assets.md のドイツ語翻訳を追加しました。PR #10803 by @nilslindemann.
  • 🌐 docs/de/docs/reference/parameters.md のドイツ語翻訳を追加しました。PR #10814 by @nilslindemann.
  • 🌐 docs/de/docs/reference/status.md のドイツ語翻訳を追加しました。PR #10815 by @nilslindemann.
  • 🌐 docs/de/docs/reference/uploadfile.md のドイツ語翻訳を追加しました。PR #10816 by @nilslindemann.
  • 🌐 docs/de/docs/reference/exceptions.md のドイツ語翻訳を追加しました。PR #10817 by @nilslindemann.
  • 🌐 docs/de/docs/reference/dependencies.md のドイツ語翻訳を追加しました。PR #10818 by @nilslindemann.
  • 🌐 docs/de/docs/reference/apirouter.md のドイツ語翻訳を追加しました。PR #10819 by @nilslindemann.
  • 🌐 docs/de/docs/reference/websockets.md のドイツ語翻訳を追加しました。PR #10822 by @nilslindemann.
  • 🌐 docs/de/docs/reference/httpconnection.md のドイツ語翻訳を追加しました。PR #10823 by @nilslindemann.
  • 🌐 docs/de/docs/reference/response.md のドイツ語翻訳を追加しました。PR #10824 by @nilslindemann.
  • 🌐 docs/de/docs/reference/middleware.md のドイツ語翻訳を追加しました。PR #10837 by @nilslindemann.
  • 🌐 docs/de/docs/reference/openapi/*.md のドイツ語翻訳を追加しました。PR #10838 by @nilslindemann.
  • 🌐 docs/de/docs/reference/security/index.md のドイツ語翻訳を追加しました。PR #10839 by @nilslindemann.
  • 🌐 docs/de/docs/reference/staticfiles.md のドイツ語翻訳を追加しました。PR #10841 by @nilslindemann.
  • 🌐 docs/de/docs/reference/testclient.md のドイツ語翻訳を追加しました。PR #10843 by @nilslindemann.
  • 🌐 docs/de/docs/project-generation.md のドイツ語翻訳を追加しました。PR #10851 by @nilslindemann.
  • 🌐 docs/de/docs/history-design-future.md のドイツ語翻訳を追加しました。PR #10865 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/dependencies/dependencies-with-yield.md のドイツ語翻訳を追加しました。PR #10422 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/dependencies/global-dependencies.md のドイツ語翻訳を追加しました。PR #10420 by @nilslindemann.
  • 🌐 docs/de/docs/fastapi-people.md のドイツ語翻訳を更新しました。PR #10285 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/dependencies/sub-dependencies.md のドイツ語翻訳を追加しました。PR #10409 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/security/index.md のドイツ語翻訳を追加しました。PR #10429 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md のドイツ語翻訳を追加しました。PR #10411 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/extra-data-types.md のドイツ語翻訳を追加しました。PR #10534 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/security/simple-oauth2.md のドイツ語翻訳を追加しました。PR #10504 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/security/get-current-user.md のドイツ語翻訳を追加しました。PR #10439 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/request-forms-and-files.md のドイツ語翻訳を追加しました。PR #10368 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/encoder.md のドイツ語翻訳を追加しました。PR #10385 by @nilslindemann.
  • 🌐 docs/de/docs/tutorial/request-forms.md のドイツ語翻訳を追加しました。PR #10361 by @nilslindemann.
  • 🌐 docs/de/docs/deployment/versions.md のドイツ語翻訳を追加しました。PR #10491 by @nilslindemann.
  • 🌐 docs/de/docs/async.md のドイツ語翻訳を追加しました。PR #10449 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/cookie-params.md のドイツ語翻訳を追加しました。PR #10323 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/dependencies/classes-as-dependencies.md のドイツ語翻訳を追加しました。PR #10407 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/dependencies/index.md のドイツ語翻訳を追加しました。PR #10399 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/header-params.md のドイツ語翻訳を追加しました。PR #10326 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/path-params-numeric-validations.md のドイツ語翻訳を追加しました。PR #10307 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/query-params-str-validations.md のドイツ語翻訳を追加しました。PR #10304 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/request-files.md のドイツ語翻訳を追加しました。PR #10364 by @nilslindemann
  • :globe_with_meridians: docs/pt/docs/advanced/templates.md のポルトガル語翻訳を追加しました。PR #11338 by @SamuelBFavarin
  • 🌐 docs/bn/docs/learn/index.md のベンガル語翻訳を追加しました。PR #11337 by @imtiaz101325
  • 🌐 docs/ko/docs/index.md の韓国語翻訳を修正しました。PR #11296 by @choi-haram
  • 🌐 docs/ko/docs/about/index.md の韓国語翻訳を追加しました。PR #11299 by @choi-haram
  • 🌐 docs/ko/docs/advanced/index.md の韓国語翻訳を追加しました。PR #9613 by @ElliottLarsen
  • 🌐 docs/de/docs/how-to/extending-openapi.md のドイツ語翻訳を追加しました。PR #10794 by @nilslindemann
  • 🌐 docs/zh/docs/tutorial/metadata.md の中国語翻訳を更新しました。PR #11286 by @jackleeio
  • 🌐 docs/zh/docs/contributing.md の中国語翻訳を更新しました。PR #10887 by @Aruelius
  • 🌐 docs/az/docs/fastapi-people.md のアゼルバイジャン語翻訳を追加しました。PR #11195 by @vusallyv
  • 🌐 docs/ru/docs/tutorial/dependencies/index.md のロシア語翻訳を追加しました。PR #11223 by @kohiry
  • 🌐 docs/zh/docs/tutorial/query-params.md の中国語翻訳を更新しました。PR #11242 by @jackleeio
  • 🌐 docs/az/learn/index.md のアゼルバイジャン語翻訳を追加しました。PR #11192 by @vusallyv

内部

  • 👥 FastAPI の貢献者を更新しました。PR #11387 by @tiangolo
  • ⬆ actions/cache を 3 から 4 に上げました。PR #10988 by @dependabot[bot]
  • ⬆ pypa/gh-action-pypi-publish を 1.8.11 から 1.8.14 に上げました。PR #11318 by @dependabot[bot]
  • ⬆ pillow を 10.1.0 から 10.2.0 に上げました。PR #11011 by @dependabot[bot]
  • ⬆ black を 23.3.0 から 24.3.0 に上げました。PR #11325 by @dependabot[bot]
  • 👷 月曜日に週に一度テストを実行する cron を追加しました。PR #11377 by @estebanx64
  • ➕ mkdocs-markdownextradata-plugin を mkdocs-macros-plugin に置き換えました。PR #11383 by @tiangolo
  • 👷 MkDocs Material の問題が処理されている間、MkDocs インサイダーズのソーシャルプラグインを無効にしました。PR #11373 by @tiangolo
  • 👷 MkDocs インサイダーズをインストールして使用するタイミングのロジックを修正しました。PR #11372 by @tiangolo
  • 👷 公開に Python パッケージキャッシュを使用しないようにしました。PR #11366 by @tiangolo
  • 👷 再配布用の sdist(例:Linuxディストリビューション)をテストするための CI を追加しました。PR #11365 by @tiangolo
  • 👷 build-docs GitHub アクションのパスフィルターを更新しました。PR #11354 by @tiangolo
  • 🔧 Ruff の設定を更新し、SQLModel から追加の無視ルールを追加しました。PR #11353 by @tiangolo
  • ⬆️ Ruff v0.2.0 の構成をアップグレードしました。PR #11075 by @charliermarsh
  • 🔧 スポンサーを更新し、MongoDB を追加しました。PR #11346 by @tiangolo
  • ⬆ dorny/paths-filter を 2 から 3 に上げました。PR #11028 by @dependabot[bot]
  • ⬆ dawidd6/action-download-artifact を 3.0.0 から 3.1.4 に上げました。PR #11310 by @dependabot[bot]
  • ♻️ FastAPI の貢献者の計算をリファクタリングし、議論日ではなくコメント日に基づいて、3ヶ月、6ヶ月、1年を含めました。PR #11304 by @tiangolo
  • 👥 FastAPI の貢献者を更新しました。PR #11228 by @tiangolo
  • 🔥 ドキュメントから Jina AI QA ボットを削除しました。PR #11268 by @nan-wang
  • 🔧 スポンサーを更新し、Jina を削除し、Powens を削除し、TestDriven.io を移動しました。PR #11213 by @tiangolo

0.110.0

破壊的変更

  • 🐛 内部サーバーエラーによる未処理のメモリ増加を修正し、yieldexceptを使用した依存関係を、通常のPythonのように再度raiseすることを要求するようにリファクタリングしました。PR #11191 by @tiangolo
    • これは、yieldを使用した依存関係を使用し、それらの依存関係でexceptを使用し、再度raiseしなかった場合、破壊的な変更(そしてわずかに)です。
    • これは、サーバーが内部サーバーエラーを生成する未処理の例外を抱えていた場合、その時点で割り当てられたメモリが解放されないメモリリークとして、@rushilsrivastavaによって内部的に報告されました。
    • 新しいドキュメントを読む:yieldexceptを使用した依存関係

要するに、次のような依存関係があった場合

def my_dep():
    try:
        yield
    except SomeException:
        pass

これで、通常のPythonの場合と同様に、exceptの後に再度raiseする必要があることを確認する必要があります。

def my_dep():
    try:
        yield
    except SomeException:
        raise

ドキュメント

  • ✏️ docs/ko/docs/ の軽微なタイプミスを修正しました。PR #11126 by @KaniKim
  • ✏️ fastapi/applications.py の軽微なタイプミスを修正しました。PR #11099 by @JacobHayes

翻訳

  • 🌐 docs/de/docs/reference/background.md のドイツ語翻訳を追加しました。PR #10820 by @nilslindemann
  • 🌐 docs/de/docs/reference/templating.md のドイツ語翻訳を追加しました。PR #10842 by @nilslindemann
  • 🌐 docs/de/docs/external-links.md のドイツ語翻訳を追加しました。PR #10852 by @nilslindemann
  • 🌐 docs/tr/docs/tutorial/query-params.md のトルコ語翻訳を更新しました。PR #11162 by @hasansezertasan
  • 🌐 docs/de/docs/reference/encoders.md のドイツ語翻訳を追加しました。PR #10840 by @nilslindemann
  • 🌐 docs/de/docs/reference/responses.md のドイツ語翻訳を追加しました。PR #10825 by @nilslindemann
  • 🌐 docs/de/docs/reference/request.md のドイツ語翻訳を追加しました。PR #10821 by @nilslindemann
  • 🌐 docs/tr/docs/tutorial/query-params.md のトルコ語翻訳を追加しました。PR #11078 by @emrhnsyts
  • 🌐 docs/de/docs/reference/fastapi.md のドイツ語翻訳を追加しました。PR #10813 by @nilslindemann
  • 🌐 docs/de/docs/newsletter.md のドイツ語翻訳を追加しました。PR #10853 by @nilslindemann
  • 🌐 docs/zh-hant/docs/learn/index.md の繁体字中国語翻訳を追加しました。PR #11142 by @hsuanchi
  • 🌐 /docs/ko/docs/tutorial/dependencies/global-dependencies.md の韓国語翻訳を追加しました。PR #11123 by @riroan
  • 🌐 /docs/ko/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md の韓国語翻訳を追加しました。PR #11124 by @riroan
  • 🌐 /docs/ko/docs/tutorial/schema-extra-example.md の韓国語翻訳を追加しました。PR #11121 by @KaniKim
  • 🌐 /docs/ko/docs/tutorial/body-fields.md の韓国語翻訳を追加しました。PR #11112 by @KaniKim
  • 🌐 /docs/ko/docs/tutorial/cookie-params.md の韓国語翻訳を追加しました。PR #11118 by @riroan
  • 🌐 /docs/ko/docs/dependencies/index.md の韓国語翻訳を更新しました。PR #11114 by @KaniKim
  • 🌐 /docs/ko/docs/deployment/docker.md の韓国語翻訳を更新しました。PR #11113 by @KaniKim
  • 🌐 docs/tr/docs/tutorial/first-steps.md のトルコ語翻訳を更新しました。PR #11094 by @hasansezertasan
  • 🌐 docs/es/docs/advanced/security/index.md のスペイン語翻訳を追加しました。PR #2278 by @Xaraxx
  • 🌐 docs/es/docs/advanced/response-headers.md のスペイン語翻訳を追加しました。PR #2276 by @Xaraxx
  • 🌐 docs/es/docs/deployment/index.md~/deployment/versions.md のスペイン語翻訳を追加しました。PR #9669 by @pabloperezmoya
  • 🌐 docs/es/docs/benchmarks.md のスペイン語翻訳を追加しました。PR #10928 by @pablocm83
  • 🌐 docs/es/docs/advanced/response-change-status-code.md のスペイン語翻訳を追加しました。PR #11100 by @alejsdev

0.109.2

アップグレード

  • ⬆️ Starlette のバージョンを >= 0.36.3 にアップグレードしました。PR #11086 by @tiangolo

翻訳

  • 🌐 docs/tr/docs/fastapi-people.md のトルコ語翻訳を更新しました。PR #10547 by @alperiox

内部

  • 🍱 新しい FastAPI ロゴを追加しました。PR #11090 by @tiangolo

0.109.1

セキュリティ修正

  • ⬆️ ReDos攻撃でフォームデータを使用する際の脆弱性を修正するため、python-multipartの最小バージョンを>=0.0.7にアップグレードしました。または、python-multipartを単にアップグレードすることもできます。

アドバイザリ: Content-Type ヘッダー ReDoSで詳細をご覧ください。

機能

  • ✨ ボディのないステータスコードに HTTP 205 を含める。PR #10969 by @tiangolo

リファクタリング

  • ✅ FastAPI テストスイートを実行する他のツールとの互換性のために、重複した操作 ID 生成のテストをリファクタリング。PR #10876 by @emmettbutler
  • ♻️ fastapi/utils.py で f-strings を使用して文字列形式を簡素化。PR #10576 by @eukub
  • 🔧 Ruff の設定で、意図せずに mccabe 複雑性チェックが有効および無効になる問題を修正。PR #10893 by @jiridanek
  • ✅ Starlette の修正後、tests/test_tutorial/test_header_params/test_tutorial003.py のテストを再度有効化。PR #10904 by @ooknimm

ドキュメント

  • 📝 help-fastapi.md の表現を調整。PR #11040 by @tiangolo
  • 📝 Behind a Proxy のドキュメントを調整。PR #11038 by @tiangolo
  • 📝 外部リンクを追加: 10 Tips for adding SQLAlchemy to FastAPI。PR #11036 by @Donnype
  • 📝 外部リンクを追加: Tips on migrating from Flask to FastAPI and vice-versa。PR #11029 by @jtemporal
  • 📝 古いチュートリアルを非推奨化: Peewee, Couchbase, encode/databases。PR #10979 by @tiangolo
  • ✏️ fastapi/security/oauth2.py のタイプミスを修正。PR #10972 by @RafalSkolasinski
  • 📝 docs/en/docs/tutorial/handling-errors.mdHTTPException の詳細を更新。PR #5418 by @papb
  • ✏️ docs/de/docs/tutorial/first-steps.md でいくつかの調整。PR #10959 by @nilslindemann
  • ✏️ docs/en/docs/advanced/async-tests.md のリンクを修正。PR #10960 by @nilslindemann
  • ✏️ スペイン語ドキュメントのタイプミスを修正。PR #10957 by @jlopezlira
  • 📝 ライフスパン関数とイベントとの後方互換性に関する警告を追加。PR #10734 by @jacob-indigo
  • ✏️ 複数の言語で docs/tutorial/sql-databases.md の破損したリンクを修正。PR #10716 by @theoohoho
  • ✏️ external_links.yml から破損したリンクを削除。PR #10943 by @Torabek
  • 📝 url_for に関する詳細情報をテンプレートドキュメントに追加。PR #5937 by @EzzEddin
  • 📝 セキュリティドキュメントでの Token モデルの使用を更新。PR #9313 by @piotrszacilowski
  • ✏️ docs/en/docs/tutorial/bigger-applications.md で強調表示された行を更新。PR #5490 by @papb
  • 📝 外部リンクを追加: Explore How to Effectively Use JWT With FastAPI。PR #10212 by @aanchlia
  • 📝 docs/en/docs/tutorial/static-files.md にハイパーリンクを追加。PR #10243 by @hungtsetse
  • 📝 外部リンクを追加: Instrument a FastAPI service adding tracing with OpenTelemetry and send/show traces in Grafana Tempo。PR #9440 by @softwarebloat
  • 📝 en/docs/contributing.md のレビューと表現の変更。PR #10480 by @nilslindemann
  • 📝 外部リンクを追加: ML serving and monitoring with FastAPI and Evidently。PR #9701 by @mnrozhkov
  • 📝 ドキュメントで "have in mind" を "keep in mind" に修正。PR #10376 by @malicious
  • 📝 外部リンクを追加: Talk by Jeny Sadadia。PR #10265 by @JenySadadia
  • 📝 tutorial/bigger-applications.md に場所情報を追加。PR #10552 by @nilslindemann
  • ✏️ docs/en/docs/advanced/path-operation-advanced-configuration.md の Pydantic メソッド名を修正。PR #10826 by @ahmedabdou14

翻訳

  • 🌐 docs/es/docs/external-links.md のスペイン語翻訳を追加。PR #10933 by @pablocm83
  • 🌐 docs/ko/docs/tutorial/first-steps.md, docs/ko/docs/tutorial/index.md, docs/ko/docs/tutorial/path-params.md, および docs/ko/docs/tutorial/query-params.md の韓国語翻訳を更新。PR #4218 by @SnowSuno
  • 🌐 docs/zh/docs/tutorial/dependencies/dependencies-with-yield.md の中国語翻訳を追加。PR #10870 by @zhiquanchi
  • 🌐 docs/zh/docs/deployment/concepts.md の中国語翻訳を追加。PR #10282 by @xzmeng
  • 🌐 docs/az/docs/index.md のアゼルバイジャン語翻訳を追加。PR #11047 by @aykhans
  • 🌐 docs/ko/docs/tutorial/middleware.md の韓国語翻訳を追加。PR #2829 by @JeongHyeongKim
  • 🌐 docs/de/docs/tutorial/body-nested-models.md のドイツ語翻訳を追加。PR #10313 by @nilslindemann
  • 🌐 docs/fa/docs/tutorial/middleware.md のペルシア語翻訳を追加。PR #9695 by @mojtabapaso
  • 🌐 docs/fa/docs/index.md のペルシア語翻訳を更新。PR #10216 by @theonlykingpin
  • 🌐 docs/de/docs/tutorial/body-fields.md のドイツ語翻訳を追加。PR #10310 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/body.md のドイツ語翻訳を追加。PR #10295 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/body-multiple-params.md のドイツ語翻訳を追加。PR #10308 by @nilslindemann
  • 🌐 docs/ja/docs/tutorial/security/get-current-user.md の日本語翻訳を追加。PR #2681 by @sh0nk
  • 🌐 docs/zh/docs/advanced/advanced-dependencies.md の中国語翻訳を追加。PR #3798 by @jaystone776
  • 🌐 docs/zh/docs/advanced/events.md の中国語翻訳を追加。PR #3815 by @jaystone776
  • 🌐 docs/zh/docs/advanced/behind-a-proxy.md の中国語翻訳を追加。PR #3820 by @jaystone776
  • 🌐 docs/zh/docs/advanced/testing-events.md の中国語翻訳を追加。PR #3818 by @jaystone776
  • 🌐 docs/zh/docs/advanced/testing-websockets.md の中国語翻訳を追加。PR #3817 by @jaystone776
  • 🌐 docs/zh/docs/advanced/testing-database.md の中国語翻訳を追加。PR #3821 by @jaystone776
  • 🌐 docs/zh/docs/deployment/deta.md の中国語翻訳を追加。PR #3837 by @jaystone776
  • 🌐 docs/zh/docs/history-design-future.md の中国語翻訳を追加。PR #3832 by @jaystone776
  • 🌐 docs/zh/docs/project-generation.md の中国語翻訳を追加。PR #3831 by @jaystone776
  • 🌐 docs/zh/docs/deployment/docker.md の中国語翻訳を追加。PR #10296 by @xzmeng
  • 🌐 docs/es/docs/features.md のスペイン語翻訳を更新。PR #10884 by @pablocm83
  • 🌐 docs/es/docs/newsletter.md のスペイン語翻訳を追加。PR #10922 by @pablocm83
  • 🌐 docs/ko/docs/tutorial/background-tasks.md の韓国語翻訳を追加。PR #5910 by @junah201
  • 🌐 docs/tr/docs/alternatives.md のトルコ語翻訳を追加。PR #10502 by @alperiox
  • 🌐 docs/ko/docs/tutorial/dependencies/index.md の韓国語翻訳を追加。PR #10989 by @KaniKim
  • 🌐 /docs/ko/docs/tutorial/body.md の韓国語翻訳を追加。PR #11000 by @KaniKim
  • 🌐 docs/pt/docs/tutorial/schema-extra-example.md のポルトガル語翻訳を追加。PR #4065 by @luccasmmg
  • 🌐 docs/tr/docs/history-design-future.md のトルコ語翻訳を追加。PR #11012 by @hasansezertasan
  • 🌐 docs/tr/docs/resources/index.md のトルコ語翻訳を追加。PR #11020 by @hasansezertasan
  • 🌐 docs/tr/docs/how-to/index.md のトルコ語翻訳を追加。PR #11021 by @hasansezertasan
  • 🌐 docs/de/docs/tutorial/query-params.md のドイツ語翻訳を追加。PR #10293 by @nilslindemann
  • 🌐 docs/de/docs/benchmarks.md のドイツ語翻訳を追加。PR #10866 by @nilslindemann
  • 🌐 docs/tr/docs/learn/index.md のトルコ語翻訳を追加。PR #11014 by @hasansezertasan
  • 🌐 docs/fa/docs/tutorial/security/index.md のペルシア語翻訳を追加。PR #9945 by @mojtabapaso
  • 🌐 docs/tr/docs/help/index.md のトルコ語翻訳を追加。PR #11013 by @hasansezertasan
  • 🌐 docs/tr/docs/about/index.md のトルコ語翻訳を追加。PR #11006 by @hasansezertasan
  • 🌐 docs/tr/docs/benchmarks.md のトルコ語翻訳を更新。PR #11005 by @hasansezertasan
  • 🌐 docs/it/docs/index.md のイタリア語翻訳を追加。PR #5233 by @matteospanio
  • 🌐 docs/ko/docs/help/index.md の韓国語翻訳を追加。PR #10983 by @KaniKim
  • 🌐 docs/ko/docs/features.md の韓国語翻訳を追加。PR #10976 by @KaniKim
  • 🌐 docs/ko/docs/tutorial/security/get-current-user.md の韓国語翻訳を追加しました。PR #5737 by @KdHyeon0661
  • 🌐 docs/ru/docs/tutorial/security/first-steps.md のロシア語翻訳を追加しました。PR #10541 by @AlertRED
  • 🌐 docs/ru/docs/tutorial/handling-errors.md のロシア語翻訳を追加しました。PR #10375 by @AlertRED
  • 🌐 docs/ru/docs/tutorial/encoder.md のロシア語翻訳を追加しました。PR #10374 by @AlertRED
  • 🌐 docs/ru/docs/tutorial/body-updates.md のロシア語翻訳を追加しました。PR #10373 by @AlertRED
  • 🌐 ロシア語翻訳: fastapi-people.md を更新しました。PR #10255 by @NiKuma0
  • 🌐 docs/ja/docs/tutorial/security/index.md の日本語翻訳を追加しました。PR #5798 by @3w36zj6
  • 🌐 docs/de/docs/advanced/generate-clients.md のドイツ語翻訳を追加しました。PR #10725 by @nilslindemann
  • 🌐 docs/de/docs/advanced/openapi-webhooks.md のドイツ語翻訳を追加しました。PR #10712 by @nilslindemann
  • 🌐 docs/de/docs/advanced/custom-response.md のドイツ語翻訳を追加しました。PR #10624 by @nilslindemann
  • 🌐 docs/de/docs/advanced/additional-status-codes.md のドイツ語翻訳を追加しました。PR #10617 by @nilslindemann
  • 🌐 docs/de/docs/tutorial/middleware.md のドイツ語翻訳を追加しました。PR #10391 by @JohannesJungbluth
  • 🌐 ドイツ語の導入ドキュメント翻訳を追加しました。PR #10497 by @nilslindemann
  • 🌐 docs/ja/docs/tutorial/encoder.md の日本語翻訳を追加しました。PR #1955 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/extra-data-types.md の日本語翻訳を追加しました。PR #1932 by @SwftAlpc
  • 🌐 docs/tr/docs/async.md のトルコ語翻訳を追加しました。PR #5191 by @BilalAlpaslan
  • 🌐 docs/tr/docs/project-generation.md のトルコ語翻訳を追加しました。PR #5192 by @BilalAlpaslan
  • 🌐 docs/ko/docs/deployment/docker.md の韓国語翻訳を追加しました。PR #5657 by @nearnear
  • 🌐 docs/ko/docs/deployment/server-workers.md の韓国語翻訳を追加しました。PR #4935 by @jujumilk3
  • 🌐 docs/ko/docs/deployment/index.md の韓国語翻訳を追加しました。PR #4561 by @jujumilk3
  • 🌐 docs/ko/docs/tutorial/path-operation-configuration.md の韓国語翻訳を追加しました。PR #3639 by @jungsu-kwon
  • 🌐 zh - 繁体字の説明を修正しました。PR #10889 by @cherinyy
  • 🌐 docs/ko/docs/tutorial/static-files.md の韓国語翻訳を追加しました。PR #2957 by @jeesang7
  • 🌐 docs/ko/docs/tutorial/response-model.md の韓国語翻訳を追加しました。PR #2766 by @hard-coders
  • 🌐 docs/ko/docs/tutorial/body-multiple-params.md の韓国語翻訳を追加しました。PR #2461 by @PandaHun
  • 🌐 docs/ko/docs/tutorial/query-params-str-validations.md の韓国語翻訳を追加しました。PR #2415 by @hard-coders
  • 🌐 docs/ko/docs/python-types.md の韓国語翻訳を追加しました。PR #2267 by @jrim
  • 🌐 docs/ko/docs/tutorial/body-nested-models.md の韓国語翻訳を追加しました。PR #2506 by @hard-coders
  • 🌐 docs/ko/docs/learn/index.md の韓国語翻訳を追加しました。PR #10977 by @KaniKim
  • 🌐 繁体字中国語の翻訳を初期化しました。PR #10505 by @hsuanchi
  • ✏️ docs/de/docs/tutorial/index.md のドイツ語翻訳を調整しました。PR #10962 by @nilslindemann
  • ✏️ docs/ko/docs/tutorial/path-params.md のタイプミスを修正しました。PR #10758 by @2chanhaeng
  • 🌐 docs/ja/docs/tutorial/dependencies/dependencies-with-yield.md の日本語翻訳を追加しました。PR #1961 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md の日本語翻訳を追加しました。PR #1960 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/dependencies/sub-dependencies.md の日本語翻訳を追加しました。PR #1959 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/background-tasks.md の日本語翻訳を追加しました。PR #2668 by @tokusumi
  • 🌐 docs/ja/docs/tutorial/dependencies/index.md および docs/ja/docs/tutorial/dependencies/classes-as-dependencies.md の日本語翻訳を追加しました。PR #1958 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/response-model.md の日本語翻訳を追加しました。PR #1938 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/body-multiple-params.md の日本語翻訳を追加しました。PR #1903 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/path-params-numeric-validations.md の日本語翻訳を追加しました。PR #1902 by @SwftAlpc
  • 🌐 docs/ja/docs/python-types.md の日本語翻訳を追加しました。PR #1899 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/handling-errors.md の日本語翻訳を追加しました。PR #1953 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/response-status-code.md の日本語翻訳を追加しました。PR #1942 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/extra-models.md の日本語翻訳を追加しました。PR #1941 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/schema-extra-example.md の日本語翻訳を追加しました。PR #1931 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/body-nested-models.md の日本語翻訳を追加しました。PR #1930 by @SwftAlpc
  • 🌐 docs/ja/docs/tutorial/body-fields.md の日本語翻訳を追加しました。PR #1923 by @SwftAlpc
  • 🌐 docs/de/docs/tutorial/index.md のドイツ語翻訳を追加しました。PR #9502 by @fhabers21
  • 🌐 docs/de/docs/tutorial/background-tasks.md のドイツ語翻訳を追加しました。PR #10566 by @nilslindemann
  • ✏️ docs/ru/docs/index.md のタイプミスを修正しました。PR #10672 by @Delitel-WEB
  • ✏️ docs/zh/docs/tutorial/extra-data-types.md のタイプミスを修正しました。PR #10727 by @HiemalBeryl
  • 🌐 docs/ru/docs/tutorial/dependencies/classes-as-dependencies.md のロシア語翻訳を追加しました。PR #10410 by @AlertRED

内部

  • 👥 FastAPIのメンバーを更新しました。PR #11074 by @tiangolo
  • 🔧 スポンサーを更新: Coherenceを追加しました。PR #11066 by @tiangolo
  • 👷 GitHub Action issue-manager をアップグレードしました。PR #11056 by @tiangolo
  • 🍱 スポンサーを更新: TalkPythonバッジ。PR #11052 by @tiangolo
  • 🔧 スポンサーを更新: TalkPythonバッジの画像。PR #11048 by @tiangolo
  • 🔧 スポンサーを更新、Detaを削除しました。PR #11041 by @tiangolo
  • 💄 RTL言語(以前のRTL PRで誤って導入された)でCSSが崩れるのを修正しました。PR #11039 by @tiangolo
  • 🔧 mkdocs.yml にイタリア語を追加しました。PR #11016 by @alejsdev
  • 🔨 CIで mkdocs.yml の言語を検証し、docs.py を更新しました。PR #11009 by @tiangolo
  • 🔧 レビューアが1人でも翻訳を受け入れるように label-approved.yml の設定を更新しました。PR #11007 by @alejsdev
  • 👷 GitHub Action issue managerに変更リクエストの処理を追加しました。PR #10971 by @tiangolo
  • 🔧 dependabotの更新で依存関係をグループ化しました。PR #10952 by @Kludex
  • ⬆ actions/setup-python を 4 から 5 に上げました。PR #10764 by @dependabot[bot]
  • ⬆ pypa/gh-action-pypi-publish を 1.8.10 から 1.8.11 に上げました。PR #10731 by @dependabot[bot]
  • ⬆ dawidd6/action-download-artifact を 2.28.0 から 3.0.0 に上げました。PR #10777 by @dependabot[bot]
  • 🔧 zh-hant のようにコード名が長い言語への翻訳をサポートしました。PR #10950 by @tiangolo

0.109.0

機能

  • ✨ Python 3.12 のサポートを追加しました。PR #10666 by @Jamim.

アップグレード

  • ⬆️ Starlette を >=0.35.0,<0.36.0 にアップグレードしました。PR #10938 by @tiangolo

ドキュメント

  • ✏️ docs/en/docs/alternatives.md のタイプミスを修正しました。PR #10931 by @s111d
  • 📝 docs_src/security/tutorial007 のコード例で emailusername に置き換えました。PR #10649 by @nilslindemann
  • 📝 VS Code のチュートリアルリンクを追加しました。PR #10592 by @nilslindemann
  • 📝 Pydantic v2 の新しい .model_dump() に関する注釈を追加しました。PR #10929 by @tiangolo
  • 📝 docs/en/docs/tutorial/sql-databases.md の壊れたリンクを修正しました。PR #10765 by @HurSungYun
  • 📝 外部リンク:FastAPIアプリケーションのモニタリングを簡単に。PR #10917 by @tiangolo
  • ✨ ドキュメント翻訳用の言語名を自動生成するようにしました。PR #5354 by @jakul
  • ✏️ docs/en/docs/alternatives.mddocs/en/docs/tutorial/dependencies/index.md のタイプミスを修正しました。PR #10906 by @s111d
  • ✏️ docs/en/docs/tutorial/dependencies/dependencies-with-yield.md のタイプミスを修正しました。PR #10834 by @Molkree
  • 📝 記事「Building a RESTful API with FastAPI: Secure Signup and Login Functionality Included」を追加しました。PR #9733 by @dxphilo
  • 📝 AsyncClient を使用したライフサイクルイベントに関する警告を追加しました。PR #4167 by @andrew-chang-dewitt
  • ✏️ /docs/reference/exceptions.md/en/docs/reference/status.md のタイプミスを修正しました。PR #10809 by @clarencepenz
  • ✏️ openapi-callbacks.md のタイプミスを修正しました。PR #10673 by @kayjan
  • ✏️ fastapi/routing.py のタイプミスを修正しました。PR #10520 by @sepsh
  • 📝 テスト用のドキュメントで、既存のユーザーエラーの場合に返されるHTTPコードを置き換えました。PR #4482 by @TristanMarion
  • 📝 FastAPI & Supabase のブログを追加しました。PR #6018 by @theinfosecguy
  • 📝 SQLAlchemy を使用した SQL データベースのサンプルソースファイルを更新しました。PR #9508 by @s-mustafa
  • 📝 ドキュメントの本文のコード例を更新し、必要に応じて名前 create_itemupdate_item に置き換えました。PR #5913 by @OttoAndrey
  • ✏️ yield を使用した依存関係のソース例のタイプミスを修正しました。PR #10847 by @tiangolo

翻訳

  • 🌐 docs/bn/docs/index.md のベンガル語翻訳を追加しました。PR #9177 by @Fahad-Md-Kamal
  • ✏️ いくつかの言語の index.md の Python バージョンを更新しました。PR #10711 by @tamago3keran
  • 🌐 docs/ru/docs/tutorial/request-forms-and-files.md のロシア語翻訳を追加しました。PR #10347 by @AlertRED
  • 🌐 docs/uk/docs/index.md のウクライナ語翻訳を追加しました。PR #10362 by @rostik1410
  • ✏️ docs/ko/docs/index.md の Python バージョンを更新しました。PR #10680 by @Eeap
  • 🌐 docs/fa/docs/features.md のペルシャ語翻訳を追加しました。PR #5887 by @amirilf
  • 🌐 docs/zh/docs/advanced/additional-responses.md の中国語翻訳を追加しました。PR #10325 by @ShuibeiC
  • 🌐 docs/ru/docs/tutorial/background-tasks.md, docs/ru/docs/tutorial/body-nested-models.md, docs/ru/docs/tutorial/debugging.md, docs/ru/docs/tutorial/testing.md のロシア語翻訳のタイプミスを修正しました。PR #10311 by @AlertRED
  • 🌐 docs/ru/docs/tutorial/request-files.md のロシア語翻訳を追加しました。PR #10332 by @AlertRED
  • 🌐 docs/zh/docs/deployment/server-workers.md の中国語翻訳を追加しました。PR #10292 by @xzmeng
  • 🌐 docs/zh/docs/deployment/cloud.md の中国語翻訳を追加しました。PR #10291 by @xzmeng
  • 🌐 docs/zh/docs/deployment/manually.md の中国語翻訳を追加しました。PR #10279 by @xzmeng
  • 🌐 docs/zh/docs/deployment/https.md の中国語翻訳を追加しました。PR #10277 by @xzmeng
  • 🌐 docs/zh/docs/deployment/index.md の中国語翻訳を追加しました。PR #10275 by @xzmeng
  • 🌐 docs/de/docs/tutorial/first-steps.md のドイツ語翻訳を追加しました。PR #9530 by @fhabers21
  • 🌐 docs/tr/docs/index.md のトルコ語翻訳を更新しました。PR #10444 by @hasansezertasan
  • 🌐 docs/zh/docs/learn/index.md の中国語翻訳を追加しました。PR #10479 by @KAZAMA-DREAM
  • 🌐 docs/ru/docs/learn/index.md のロシア語翻訳を追加しました。PR #10539 by @AlertRED
  • 🌐 中国語翻訳 docs/zh/docs/tutorial/sql-databases.md の SQLAlchemy の手順を更新しました。PR #9712 by @Royc30ne
  • 🌐 docs/tr/docs/external-links.md のトルコ語翻訳を追加しました。PR #10549 by @hasansezertasan
  • 🌐 docs/es/docs/learn/index.md のスペイン語翻訳を追加しました。PR #10885 by @pablocm83
  • 🌐 docs/uk/docs/tutorial/body-fields.md のウクライナ語翻訳を追加しました。PR #10670 by @ArtemKhymenko
  • 🌐 /docs/hu/docs/index.md のハンガリー語翻訳を追加しました。PR #10812 by @takacs
  • 🌐 docs/tr/docs/newsletter.md のトルコ語翻訳を追加しました。PR #10550 by @hasansezertasan
  • 🌐 docs/es/docs/help/index.md のスペイン語翻訳を追加しました。PR #10907 by @pablocm83
  • 🌐 docs/es/docs/about/index.md のスペイン語翻訳を追加しました。PR #10908 by @pablocm83
  • 🌐 docs/es/docs/resources/index.md のスペイン語翻訳を追加しました。PR #10909 by @pablocm83

内部

  • 👥 FastAPI People を更新しました。PR #10871 by @tiangolo
  • 👷 カスタム GitHub Action comment-docs-preview-in-pr をアップグレードしました。PR #10916 by @tiangolo
  • ⬆️ GitHub Action latest-changes をアップグレードしました。PR #10915 by @tiangolo
  • 👷 GitHub Action label-approved をアップグレードしました。PR #10913 by @tiangolo
  • ⬆️ GitHub Action label-approved をアップグレードしました。PR #10905 by @tiangolo

0.108.0

アップグレード

  • ⬆️ Starlette を >=0.29.0,<0.33.0 にアップグレードし、新しい Starlette 引数を使用してドキュメントとテンプレートの使用法を更新しました。AnyIO の固定を削除しました >=3.7.1,<4.0.0, AnyIO 4.x.x のサポートを追加しました。PR #10846 by @tiangolo

0.107.0

アップグレード

  • ⬆️ Starlette を 0.28.0 にアップグレードしました。PR #9636 by @adriangb

ドキュメント

  • 📝 ドキュメントを追加しました:生成されたクライアントの OpenAPI を更新するための Node.js スクリプトの代替。PR #10845 by @alejsdev
  • 📝 貢献ページでドキュメントセクションを再構成しました。PR #10844 by @alejsdev

0.106.0

破壊的な変更

バックグラウンドタスクでの yield を使用した依存関係からのリソースの使用は、サポートされなくなりました。

この変更は、以下の新しい機能をサポートするものです。🤓

yieldHTTPException、およびバックグラウンドタスクを使用した依存関係

yield を使用した依存関係は、yield の後に HTTPException およびその他の例外を発生させることができるようになりました。🎉

新しいドキュメントはこちらをご覧ください:yieldHTTPException を使用した依存関係

from fastapi import Depends, FastAPI, HTTPException
from typing_extensions import Annotated

app = FastAPI()


data = {
    "plumbus": {"description": "Freshly pickled plumbus", "owner": "Morty"},
    "portal-gun": {"description": "Gun to create portals", "owner": "Rick"},
}


class OwnerError(Exception):
    pass


def get_username():
    try:
        yield "Rick"
    except OwnerError as e:
        raise HTTPException(status_code=400, detail=f"Owner error: {e}")


@app.get("/items/{item_id}")
def get_item(item_id: str, username: Annotated[str, Depends(get_username)]):
    if item_id not in data:
        raise HTTPException(status_code=404, detail="Item not found")
    item = data[item_id]
    if item["owner"] != username:
        raise OwnerError(username)
    return item

FastAPI 0.106.0 より前は、yield の後に例外を発生させることはできませんでした。yield を使用した依存関係の終了コードは、応答が送信されたに実行されていたため、例外ハンドラはすでに実行されています。

これは主に、バックグラウンドタスク内で依存関係によって「yield」された同じオブジェクトを使用できるようにするために、このように設計されました。なぜなら、終了コードはバックグラウンドタスクが完了した後に実行されるからです。

それにもかかわらず、これにより、応答がネットワークを通過するのを待機しながら、yieldを使用した依存関係でリソース(たとえば、データベース接続)を不必要に保持することになるため、これはFastAPI 0.106.0で変更されました。

さらに、バックグラウンドタスクは通常、独立したロジックのセットであり、独自のリソース(独自のデータベース接続など)を使用して個別に処理する必要があります。

この動作に依存していた場合は、バックグラウンドタスク自体の中にバックグラウンドタスクのリソースを作成し、yield を使用した依存関係のリソースに依存しないデータのみを内部で使用する必要があります。

たとえば、同じデータベースセッションを使用する代わりに、バックグラウンドタスク内で新しいデータベースセッションを作成し、この新しいセッションを使用してデータベースからオブジェクトを取得します。そして、データベースからのオブジェクトをバックグラウンドタスク関数のパラメーターとして渡す代わりに、そのオブジェクトの ID を渡して、バックグラウンドタスク関数内でオブジェクトを再度取得します。

FastAPI 0.106.0 より前の実行シーケンスは、この図のようでした。

時間は上から下に流れます。そして、各列は、コードを対話または実行する部分の1つです。

sequenceDiagram

participant client as Client
participant handler as Exception handler
participant dep as Dep with yield
participant operation as Path Operation
participant tasks as Background tasks

    Note over client,tasks: Can raise exception for dependency, handled after response is sent
    Note over client,operation: Can raise HTTPException and can change the response
    client ->> dep: Start request
    Note over dep: Run code up to yield
    opt raise
        dep -->> handler: Raise HTTPException
        handler -->> client: HTTP error response
        dep -->> dep: Raise other exception
    end
    dep ->> operation: Run dependency, e.g. DB session
    opt raise
        operation -->> dep: Raise HTTPException
        dep -->> handler: Auto forward exception
        handler -->> client: HTTP error response
        operation -->> dep: Raise other exception
        dep -->> handler: Auto forward exception
    end
    operation ->> client: Return response to client
    Note over client,operation: Response is already sent, can't change it anymore
    opt Tasks
        operation -->> tasks: Send background tasks
    end
    opt Raise other exception
        tasks -->> dep: Raise other exception
    end
    Note over dep: After yield
    opt Handle other exception
        dep -->> dep: Handle exception, can't change response. E.g. close DB session.
    end

新しい実行フローはドキュメントにあります:yield を使用した依存関係の実行

機能

  • ✨ 終了コードで yield を使用した依存関係で例外 (HTTPException を含む) を発生させるサポートを追加しました。バックグラウンドタスクではサポートしていません。PR #10831 by @tiangolo

内部

0.105.0

機能

  • ✨ 複数のAnnotatedアノテーションのサポートを追加しました。例:Annotated[str, Field(), Query()]。PR #10773 by @tiangolo

リファクタリング

  • 🔥 未使用のNoneTypeを削除しました。PR #10774 by @tiangolo

ドキュメント

  • 📝 クライアント生成のためのデフォルト推奨設定を微調整しました。PR #10736 by @tiangolo

内部

  • 🔧 スポンサーを更新し、Scalarを追加しました。PR #10728 by @tiangolo
  • 🔧 スポンサーを更新し、PropelAuthを追加しました。PR #10760 by @tiangolo
  • 👷 ビルドドキュメントを更新し、CIでREADMEを検証します。PR #10750 by @tiangolo
  • 🔧 スポンサーを更新し、Fernを削除しました。PR #10729 by @tiangolo
  • 🔧 スポンサーを更新し、Codacyを追加しました。PR #10677 by @tiangolo
  • 🔧 スポンサーを更新し、Reflexを追加しました。PR #10676 by @tiangolo
  • 📝 リリースノートを更新し、latest-changesを移動してチェックします。PR #10588 by @tiangolo
  • 👷 latest-changes GitHub Actionをアップグレードします。PR #10587 by @tiangolo

0.104.1

修正

  • 📌 Swagger UIのバージョンを5.9.0に一時的に固定し、5.9.1でクラッシュするバグに対処します。PR #10529 by @alejandraklachquin
    • これは実際にはFastAPIのバグではなく、Swagger UIのバグですが、バージョンを固定することで、Swagger UI側で解決策が見つかるまで対応できます。

ドキュメント

  • 📝 外部リンクのデータ構造とレンダリングを更新しました。PR #10495 by @tiangolo
  • ✏️ docs/en/docs/tutorial/metadata.mdのSPDXライセンス識別子へのリンクを修正しました。PR #10433 by @worldworm
  • 📝 docs/en/docs/tutorial/path-params.mdで、Pydantic v1からPydantic v2に一致するように、例のバリデーションエラーを更新しました。PR #10043 by @giuliowaitforitdavide
  • ✏️ 絵文字ドキュメントといくつかのソース例のタイプミスを修正しました。PR #10438 by @afuetterer
  • ✏️ docs/en/docs/reference/dependencies.mdのタイプミスを修正しました。PR #10465 by @suravshresth
  • ✏️ docs/en/docs/tutorial/body-nested-models.mdのタイプミスと表現の修正を行いました。PR #10468 by @yogabonito
  • 📝 docs/en/docs/tutorial/query-params-str-validations.mdで、削除されたpydantic.Requiredへの参照を削除し、ドキュメントを更新しました。PR #10469 by @yogabonito
  • ✏️ docs/en/docs/reference/index.mdのタイプミスを修正しました。PR #10467 by @tarsil
  • 🔥 不要な重複したドキュメント文字列を削除しました。PR #10484 by @tiangolo

内部

  • ✏️ dotenvサポートへのPydanticリンクを更新しました。PR #10511 by @White-Mask
  • ✏️ docs/en/docs/async.mddocs/zh/docs/async.mdのリンクを相対リンクに変更しました。PR #10498 by @hasnatsajid
  • ✏️ docs/em/docs/async.mdのリンクを修正しました。PR #10507 by @hasnatsajid
  • ✏️ docs/em/docs/index.mdのタイプミスを修正しました(Python 3.8)。PR #10521 by @kerriop
  • ⬆ pillowを9.5.0から10.1.0に更新しました。PR #10446 by @dependabot[bot]
  • ⬆ mkdocs-materialの要件を<9.0.0,>=8.1.4から>=8.1.4,<10.0.0に更新しました。PR #5862 by @dependabot[bot]
  • ⬆ mkdocs-materialを9.1.21から9.4.7に更新しました。PR #10545 by @dependabot[bot]
  • 👷 Dependabotのために、シークレットが利用可能な場合にのみMkDocs Material Insidersをインストールします。PR #10544 by @tiangolo
  • 🔧 スポンサーのバッジを更新しました(Databento)。PR #10519 by @tiangolo
  • 👷 Ruffフォーマットを採用しました。PR #10517 by @tiangolo
  • 🔧 学術論文引用のためのCITATION.cffファイルを追加しました。PR #10496 by @tiangolo
  • 🐛 フックでMKDocsテーマの言語を上書きする問題を修正しました。PR #10490 by @tiangolo
  • 🔥 Gitterチャットを削除/終了しました。質問はGitHub Discussionsへ、自由な会話はDiscordへお願いします。PR #10485 by @tiangolo

0.104.0

機能

  • ✨ PEP 727を使用したリファレンス(コードAPI)ドキュメントを追加し、BackgroundTasksのカスタムドキュメント文字列を持つサブクラスを追加し、ドキュメント構造をリファクタリングしました。PR #10392 by @tiangolo。新しいドキュメントはFastAPIリファレンス - コードAPIで確認できます。

アップグレード

  • ⬆️ Python 3.7のサポートを終了し、Python 3.8以上を必須としました。PR #10442 by @tiangolo

内部

  • ⬆ dawidd6/action-download-artifactを2.27.0から2.28.0に更新しました。PR #10268 by @dependabot[bot]
  • ⬆ actions/checkoutを3から4に更新しました。PR #10208 by @dependabot[bot]
  • ⬆ pypa/gh-action-pypi-publishを1.8.6から1.8.10に更新しました。PR #10061 by @dependabot[bot]
  • 🔧 スポンサーを更新し、Bump.shの画像を更新しました。PR #10381 by @tiangolo
  • 👥 FastAPIの人々を更新しました。PR #10363 by @tiangolo

0.103.2

リファクタリング

  • ⬆️ Pydantic v2.4との互換性をアップグレードしました。新しい名前変更された関数とデフォルト値を持つJSON Schemaの入力/出力モデルが含まれます。PR #10344 by @tiangolo

翻訳

  • 🌐 docs/uk/docs/tutorial/extra-data-types.mdのウクライナ語訳を追加しました。PR #10132 by @ArtemKhymenko
  • 🌐 docs/fr/docs/advanced/path-operation-advanced-configuration.md, docs/fr/docs/alternatives.md, docs/fr/docs/async.md, docs/fr/docs/features.md, docs/fr/docs/help-fastapi.md, docs/fr/docs/index.md, docs/fr/docs/python-types.md, docs/fr/docs/tutorial/body.md, docs/fr/docs/tutorial/first-steps.md, docs/fr/docs/tutorial/query-params.mdのフランス語翻訳のタイプミスを修正しました。PR #10154 by @s-rigaud
  • 🌐 docs/zh/docs/async.mdの中国語訳を追加しました。PR #5591 by @mkdir700
  • 🌐 docs/tutorial/security/simple-oauth2.mdの中国語訳を更新しました。PR #3844 by @jaystone776
  • 🌐 docs/ko/docs/deployment/cloud.mdの韓国語訳を追加しました。PR #10191 by @Sion99
  • 🌐 docs/ja/docs/deployment/https.mdの日本語訳を追加しました。PR #10298 by @tamtam-fitness
  • 🌐 docs/ru/docs/tutorial/body-fields.mdのロシア語訳のタイプミスを修正しました。PR #10224 by @AlertRED
  • 🌐 docs/pl/docs/help-fastapi.mdのポーランド語訳を追加しました。PR #10121 by @romabozhanovgithub
  • 🌐 docs/ru/docs/tutorial/header-params.mdのロシア語訳を追加しました。PR #10226 by @AlertRED
  • 🌐 docs/zh/docs/deployment/versions.mdの中国語訳を追加しました。PR #10276 by @xzmeng

内部

  • 🔧 スポンサーを更新し、Flintを削除しました。PR #10349 by @tiangolo
  • 🔧 検索クエリを簡素化するために、「awaiting review」ラベルを「awaiting-review」に名前変更しました。PR #10343 by @tiangolo
  • 🔧 スポンサーを更新し、Svixを有効にしました(#10228をリバート)。PR #10253 by @tiangolo
  • 🔧 スポンサーを更新し、Svixを削除しました。PR #10228 by @tiangolo
  • 🔧 スポンサーを更新し、Bump.shを追加しました。PR #10227 by @tiangolo

0.103.1

修正

  • 📌 Starlette 0.31.1へのアップグレード時の非互換性を処理するため、AnyIOを< 4.0.0に固定しました。PR #10194 by @tiangolo

ドキュメント

  • ✏️ ドキュメントのバリデーションパラメータ名を、regexからpatternに修正しました。PR #10085 by @pablodorrio
  • ✏️ docs/en/docs/deployment/server-workers.mdのインデント形式を修正しました。PR #10066 by @tamtam-fitness
  • ✏️ Python型のチュートリアルのPydanticの例を修正しました。PR #9961 by @rahulsalgare
  • ✏️ docs/en/docs/tutorial/extra-data-types.mdのPydanticドキュメントへのリンクを修正しました。PR #10155 by @hasnatsajid
  • ✏️ docs/en/docs/tutorial/handling-errors.mdのタイプミスを修正しました。PR #10170 by @poupapaa
  • ✏️ docs/en/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.mdのタイプミスを修正しました。PR #10172 by @ragul-kachiappan

翻訳

  • 🌐 docs/pt/docs/tutorial/path-params.md の翻訳で重複した行を削除しました。PR #10126 by @LecoOliveira
  • 🌐 docs/yo/docs/index.md にヨルバ語の翻訳を追加しました。PR #10033 by @AfolabiOlaoluwa
  • 🌐 docs/uk/docs/python-types.md にウクライナ語の翻訳を追加しました。PR #10080 by @rostik1410
  • 🌐 docs/vi/docs/tutorial/first-steps.mddocs/vi/docs/tutorial/index.md にベトナム語の翻訳を追加しました。PR #10088 by @magiskboy
  • 🌐 docs/uk/docs/alternatives.md にウクライナ語の翻訳を追加しました。PR #10060 by @whysage
  • 🌐 docs/uk/docs/tutorial/index.md にウクライナ語の翻訳を追加しました。PR #10079 by @rostik1410
  • ✏️ docs/en/docs/how-to/separate-openapi-schemas.mddocs/en/docs/tutorial/schema-extra-example.md のタイプミスを修正しました。PR #10189 by @xzmeng
  • 🌐 docs/zh/docs/advanced/generate-clients.md に中国語の翻訳を追加しました。PR #9883 by @funny-cat-happy

リファクタリング

  • ✏️ fastapi/applications.py のコメントのタイプミスを修正しました。PR #10045 by @AhsanSheraz
  • ✅ OpenAPIの例に対する不足していたテストを追加しました。カバレッジで不足していました。PR #10188 by @tiangolo

内部

  • 👥 FastAPIの貢献者を更新しました。PR #10186 by @tiangolo

0.103.0

機能

  • ✨ すべてのFastAPIパラメータでopenapi_examplesのサポートを追加しました。PR #10152 by @tiangolo

ドキュメント

  • 📝 FastAPIバージョンでの入力および出力スキーマの分離に関するドキュメントに注意書きを追加しました。PR #10150 by @tiangolo

0.102.0

機能

  • ✨ Pydantic v2でseparate_input_output_schemas=Falseを使用して、OpenAPIでの入出力JSONスキーマの分離を無効にするサポートを追加しました。PR #10145 by @tiangolo

リファクタリング

  • ♻️ 新しいPydantic 2.2.1のテストをリファクタリングしました。PR #10115 by @tiangolo

ドキュメント

  • 📝 新しいドキュメントセクション「How To - Recipes」を追加し、全員が読む必要のないドキュメントを「How To」に移動しました。PR #10114 by @tiangolo
  • 📝 高度なドキュメントを更新し、スポンサーコースへのリンクを追加しました。PR #10113 by @tiangolo
  • 📝 クライアント生成に関するドキュメントを更新しました。PR #10112 by @tiangolo
  • 📝 MkDocsを調整し、リダイレクトを追加しました。PR #10111 by @tiangolo
  • 📝 クラウドプロバイダーのドキュメントを再構築し、スポンサーへのリンクを含めました。PR #10110 by @tiangolo

内部

  • 🔧 スポンサーを更新し、Speakeasyを追加しました。PR #10098 by @tiangolo

0.101.1

修正

  • ✨ サーバーエラーログに表示されるように、ResponseValidationErrorの印刷可能な詳細を追加しました。PR #10078 by @tiangolo

リファクタリング

  • ✏️ fastapi/params.py の非推奨警告のタイプミスを修正しました。PR #9854 by @russbiggs
  • ✏️ fastapi/concurrency.py および fastapi/routing.py の内部コードのコメントのタイプミスを修正しました。PR #9590 by @ElliottLarsen

ドキュメント

  • ✏️ リリースノートのタイプミスを修正しました。PR #9835 by @francisbergin
  • 📝 外部記事を追加しました:FaunaDBとFastAPIでSMSスパム分類器サーバーレスデータベースを構築する。PR #9847 by @adejumoridwan
  • 📝 docs/en/docs/contributing.md のタイプミスを修正しました。PR #9878 by @VicenteMerino
  • 📝 docs/en/docs/tutorial/bigger-applications.md のコードのハイライトを修正しました。PR #9806 by @theonlykingpin

翻訳

  • 🌐 docs/ja/docs/deployment/concepts.md に日本語の翻訳を追加しました。PR #10062 by @tamtam-fitness
  • 🌐 docs/ja/docs/deployment/server-workers.md に日本語の翻訳を追加しました。PR #10064 by @tamtam-fitness
  • 🌐 docs/ja/docs/deployment/docker.md の日本語翻訳を更新しました。PR #10073 by @tamtam-fitness
  • 🌐 docs/uk/docs/fastapi-people.md にウクライナ語の翻訳を追加しました。PR #10059 by @rostik1410
  • 🌐 docs/uk/docs/tutorial/cookie-params.md にウクライナ語の翻訳を追加しました。PR #10032 by @rostik1410
  • 🌐 docs/ru/docs/deployment/docker.md にロシア語の翻訳を追加しました。PR #9971 by @Xewus
  • 🌐 docs/vi/docs/python-types.md にベトナム語の翻訳を追加しました。PR #10047 by @magiskboy
  • 🌐 docs/ru/docs/tutorial/dependencies/global-dependencies.md にロシア語の翻訳を追加しました。PR #9970 by @dudyaosuplayer
  • 🌐 docs/ur/docs/benchmarks.md にウルドゥー語の翻訳を追加しました。PR #9974 by @AhsanSheraz

内部

  • 🔧 スポンサーのPorterを追加しました。PR #10051 by @tiangolo
  • 🔧 スポンサーを更新し、Jinaをブロンズスポンサーとして復帰させました。PR #10050 by @tiangolo
  • ⬆ mypyを1.4.0から1.4.1に上げました。PR #9756 by @dependabot[bot]
  • ⬆ mkdocs-materialを9.1.17から9.1.21に上げました。PR #9960 by @dependabot[bot]

0.101.0

機能

  • ✨ Pydanticのシリアル化モードをレスポンスに有効化し、Pydanticのcomputed_fieldのサポート、レスポンスモデルのより良いOpenAPI、適切な必須属性、より良い生成クライアントを追加しました。PR #10011 by @tiangolo

リファクタリング

  • ✅ pydantic 2.1.1との互換性のためにテストを修正しました。PR #9943 by @dmontagu
  • jsonable_encoderのWindowsでのテストエラーを修正しました。PR #9840 by @iudeen

アップグレード

  • 📌 破壊的なPydantic 2.1.0を許可しません(2.1.1が必要です)。PR #10012 by @tiangolo

翻訳

  • 🌐 docs/ru/docs/tutorial/security/index.md にロシア語の翻訳を追加しました。PR #9963 by @eVery1337
  • 🌐 欠落している翻訳に関するベトナム語の注記を削除しました。PR #9957 by @tiangolo

内部

  • 👷 外部の失敗をデバッグするためのGitHub Actionsステップのダンプコンテキストを追加しました。PR #10008 by @tiangolo
  • 🔧 修正後にMkDocs Materialピンを復元しました。PR #10001 by @tiangolo
  • 🔧 Pydanticのバージョンを尋ねるように質問テンプレートを更新しました。PR #10000 by @tiangolo
  • 📍 MkDocs Materialの依存関係を更新しました。PR #9986 by @tiangolo
  • 👥 FastAPIの貢献者を更新しました。PR #9999 by @tiangolo
  • 🐳 後でアップグレードするために、互換性のあるバージョンでDockerfileを更新しました。PR #9998 by @tiangolo
  • ➕ FastAPI Peopleの依存関係にpydantic-settingsを追加しました。PR #9988 by @tiangolo
  • ♻️ 新しいPydanticでFastAPI Peopleのロジックを更新しました。PR #9985 by @tiangolo
  • 🍱 スポンサーのFernバッジを更新しました。PR #9982 by @tiangolo
  • 👷 ドキュメントをCloudflare Pagesにデプロイします。PR #9978 by @tiangolo
  • 🔧 スポンサーのFernを更新しました。PR #9979 by @tiangolo
  • 👷 TmateでCIデバッグモードを更新しました。PR #9977 by @tiangolo

0.100.1

修正

  • 🐛 Pydantic v1の古いバージョンとの互換性のために、MultHostUrlAnyUrlに置き換えました。PR #9852 by @Kludex

ドキュメント

  • 📝 セルフホストされたSwagger UIのリンクを更新し、OpenAPI 31.0用にv5を指すようにしました。PR #9834 by @tiangolo

翻訳

  • 🌐 docs/uk/docs/tutorial/body.mdにウクライナ語の翻訳を追加しました。PR #4574 by @ss-o-furda
  • 🌐 docs/vi/docs/features.mddocs/vi/docs/index.mdにベトナム語の翻訳を追加しました。PR #3006 by @magiskboy
  • 🌐 docs/ko/docs/async.mdに韓国語の翻訳を追加しました。PR #4179 by @NinaHwang
  • 🌐 docs/zh/docs/tutorial/background-tasks.mdに中国語の翻訳を追加しました。PR #9812 by @wdh99
  • 🌐 docs/fr/docs/tutorial/query-params-str-validations.mdにフランス語の翻訳を追加しました。PR #4075 by @Smlep
  • 🌐 docs/fr/docs/tutorial/index.mdにフランス語の翻訳を追加しました。PR #2234 by @JulianMaurin
  • 🌐 docs/fr/docs/contributing.mdにフランス語の翻訳を追加しました。PR #2132 by @JulianMaurin
  • 🌐 docs/fr/docs/benchmarks.mdにフランス語の翻訳を追加しました。PR #2155 by @clemsau
  • 🌐 中国語の翻訳を新しいソースファイルで更新しました。PR #9738 by @mahone3297
  • 🌐 docs/ru/docs/tutorial/request-forms.mdにロシア語の翻訳を追加しました。PR #9841 by @dedkot01
  • 🌐 docs/zh/docs/tutorial/handling-errors.mdの中国語の翻訳を更新しました。PR #9485 by @Creat55

内部

  • 🔧 スポンサーを更新し、Fernを追加しました。PR #9956 by @tiangolo
  • 👷 FastAPI Peopleトークンを更新しました。PR #9844 by @tiangolo
  • 👥 FastAPI Peopleを更新しました。PR #9775 by @tiangolo
  • 👷 MkDocs Materialトークンを更新しました。PR #9843 by @tiangolo
  • 👷 最新の変更のためにトークンを更新しました。PR #9842 by @tiangolo

0.100.0

Pydantic v2 のサポート ✨

Pydanticバージョン2では、コアRustで再書き込みされ、多くの改善と機能が含まれています。たとえば、

  • コーナーケースにおける正確性の向上。
  • より安全な型。
  • より良いパフォーマンスより少ないエネルギー消費。
  • より良い拡張性
  • など。

...これらすべてを同じPython APIを維持しながら実現しました。ほとんどの場合、単純なモデルでは、Pydanticのバージョンをアップグレードするだけで、すべての利点を得ることができます。🚀

純粋なデータ検証と処理の場合、20倍以上のパフォーマンス向上を得ることができます。これは2,000%以上を意味します。🤯

FastAPIを使用する場合、リクエストとレスポンスの処理、依存関係の処理、独自のコードの実行、特にネットワークの待機など、多くの処理が行われます。それでも、アップグレードするだけで、おそらくいくつかの良いパフォーマンス向上を得られるでしょう。

このリリースの焦点は、現在のアプリが動作し続けるように、Pydantic v1とv2との互換性です。後で、リファクタリング、正確性、コードの改善、そしてパフォーマンスの向上にさらに焦点を当てます。FastAPIのベータリリースでベンチマークを実行した一部のサードパーティの早期ベータテスターは、2倍から3倍の改善を報告しました。これは、pip install --upgrade fastapi pydanticを実行するだけで得られることを考えると悪くありません。これは公式なベンチマークではなく、私自身も確認していませんが、良い兆候です。

移行

Pydanticの移行ガイドを確認してください。

Pydanticモデルで変更が必要なものについては、Pydanticチームがbump-pydanticを構築しました。

これは、コードを処理し、ほとんどのものを自動的に更新するコマンドラインツールです。まずコードがgitにあることを確認し、変更をコミットする前に、各変更を確認してすべてが正しいことを確認してください。

Pydantic v1

このバージョンのFastAPIは、引き続きPydantic v1をサポートしています。Pydantic v1はいつか非推奨になりますが、しばらくの間はサポートされます。

これは、新しいPydantic v2をインストールでき、何か問題が発生した場合は、最新のFastAPIを使用しながら、問題の修正中にPydantic v1をインストールできることを意味します。

Pydantic v1とv2の両方のテストがあり、テストのカバレッジ100%に保たれています。

変更点

  • Pydantic Field()でサポートされている新しいパラメーターフィールドがあります。

    • Path()
    • Query()
    • Header()
    • Cookie()
    • Body()
    • Form()
    • File()
  • 新しいパラメーターフィールドは次のとおりです。

    • default_factory
    • alias_priority
    • validation_alias
    • serialization_alias
    • discriminator
    • strict
    • multiple_of
    • allow_inf_nan
    • max_digits
    • decimal_places
    • json_schema_extra

...これらの詳細については、Pydanticのドキュメントを参照してください。

  • パラメーターregexは非推奨になり、patternに置き換えられました。
  • 新しいPydanticモデルでは、構成に内部クラスConfigではなく、単純な辞書を受け取る、改善および簡略化された属性model_configを使用します。
  • 内部クラスConfigの属性schema_extraは、新しいmodel_config辞書のキーjson_schema_extraに置き換えられました。
  • "fastapi[all]"をインストールすると、次のものも含まれるようになりました。
  • 現在、Pydantic Settingsは追加のオプションパッケージ("fastapi[all]"に含まれています)です。設定を使用するには、pydanticから直接インポートするのではなく、from pydantic_settings import BaseSettingsをインポートする必要があります。

  • PR #9816 by @tiangoloには、ベータブランチ(main-pv2)で実行された(複数のPRの)すべての作業が含まれています。

0.99.1

修正

  • 🐛 JSONスキーマが、additionalProperties: falseなどの有効なJSONスキーマとしてブール値を受け入れる問題を修正しました。PR #9781 by @tiangolo

ドキュメント

  • 📝 ソース例を新しいJSONスキーマの例フィールドを使用するように更新しました。PR #9776 by @tiangolo

0.99.0

機能

  • ✨ OpenAPI 3.1.0のサポートを追加しました。PR #9770 by @tiangolo

    • Webhookのドキュメント作成の新しいサポートについて、こちらで新しいドキュメントをお読みください:高度なユーザーガイド:OpenAPI Webhooks
    • OpenAPI 3.1.0にアップグレードしました。これはJSON Schema 2020-12を使用します。
    • Swagger UIをOpenAPI 3.1.0をサポートするバージョン5.x.xにアップグレードしました。
    • 最新のJSONスキーマとOpenAPIに基づいて、Query()Cookie()Body()などのexamplesフィールドを更新しました。現在、例のリストを受け取り、JSONスキーマの外部ではなく、直接JSONスキーマに含まれます。詳細(および歴史的な技術的詳細)については、更新されたドキュメントを参照してください:チュートリアル:リクエストの例のデータを宣言する
  • jsonable_encoderdequeオブジェクトとその子をサポートしました。PR #9433 by @cranium

ドキュメント

  • 📝 FastAPIと友達のニュースレターのフォームを修正しました。PR #9749 by @tiangolo

翻訳

  • 🌐 docs/fa/docs/advanced/sub-applications.mdにペルシア語の翻訳を追加しました。PR #9692 by @mojtabapaso
  • 🌐 docs/ru/docs/tutorial/response-model.mdにロシア語の翻訳を追加しました。PR #9675 by @glsglsgls

内部

  • 🔨 ローカルのライブ開発中にMkDocs Materialで行番号を有効にして、コードの強調表示を簡略化しました。PR #9769 by @tiangolo
  • ⬆ httpxの要件を<0.24.0,>=0.23.0から>=0.23.0,<0.25.0に更新しました。PR #9724 by @dependabot[bot]
  • ⬆ mkdocs-materialを9.1.16から9.1.17にバンプしました。PR #9746 by @dependabot[bot]
  • 🔥 欠落している翻訳のダミーページを削除しました。もはや必要ありません。PR #9751 by @tiangolo
  • ⬆ [pre-commit.ci] pre-commit autoupdate。PR #9259 by @pre-commit-ci[bot]
  • ✨ Material for MkDocs Insidersの機能とカードを追加しました。PR #9748 by @tiangolo
  • 🔥 翻訳のない言語を削除しました。PR #9743 by @tiangolo
  • ✨ ビルドスクリプトのドキュメントをリファクタリングし、MkDocsフックを使用し、言語の設定を簡素化(削除)しました。PR #9742 by @tiangolo
  • 🔨 最初のインデックスファイルに基づいてセクションの名前を変更するMkDocsフックを追加しました。PR #9737 by @tiangolo
  • 👷 cronジョブを、トークンがないことによるエラー通知を避けるため、フォークではなくメインリポジトリでのみ実行するようにしました。PR #9735 by @tiangolo
  • 🔧 他の言語のMkDocsを更新しました。PR #9734 by @tiangolo
  • 👷 ドキュメントCIをリファクタリングし、速度を最適化するために動的マトリックスを使用して複数のワーカーで実行します。PR #9732 by @tiangolo
  • 🔥 不要になった古い内部GitHub Actions watch-previewsを削除しました。PR #9730 by @tiangolo
  • ⬆️ MkDocsとMkDocs Materialをアップグレードしました。PR #9729 by @tiangolo
  • 👷 ドキュメントの変更があった場合にのみ、ドキュメントをビルドおよびデプロイします。PR #9728 by @tiangolo

0.98.0

機能

  • ✨ FastAPIアプリレベルでredirect_slashesを無効にできるようにしました。PR #3432 by @cyberlis

ドキュメント

  • 📝 内部でujsonを使用するPydanticに関するドキュメントを更新しました。PR #5804 by @mvasilkov
  • docs/en/docs/tutorial/debugging.mdの表現を修正しました。PR #9581 by @ivan-abc
  • 📝 ドイツ語のブログ記事(Domain-driven Design mit Python und FastAPI)を追加しました。PR #9261 by @msander
  • ✏️ docs/en/docs/tutorial/security/index.mdの表現を調整しました。PR #9561 by @jyothish-mohan
  • 📝 docs/en/docs/tutorial/schema-extra-example.mdAnnotatedに関する注釈を更新しました。PR #9620 by @Alexandrhub
  • ✏️ docs/en/docs/tutorial/query-params-str-validations.mdのタイプミスAnnotation -> Annotatedを修正しました。PR #9625 by @mccricardo
  • 📝 ドキュメントでSQLをテストするためにインメモリデータベースを使用します。PR #1223 by @HarshaLaxman

翻訳

  • 🌐 docs/ru/docs/tutorial/metadata.mdのロシア語翻訳を追加しました。PR #9681 by @TabarakoAkula
  • 🌐 docs/es/docs/tutorial/first-steps.mdのスペイン語翻訳のタイプミスを修正しました。PR #9571 by @lilidl-nft
  • 🌐 docs/tutorial/path-operation-configuration.mdのロシア語翻訳を追加しました。PR #9696 by @TabarakoAkula
  • 🌐 docs/zh/docs/advanced/security/index.mdの中国語翻訳を追加しました。PR #9666 by @lordqyxz
  • 🌐 docs/zh/docs/advanced/settings.mdの中国語翻訳を追加しました。PR #9652 by @ChoyeonChern
  • 🌐 docs/zh/docs/advanced/websockets.mdの中国語翻訳を追加しました。PR #9651 by @ChoyeonChern
  • 🌐 docs/zh/docs/tutorial/testing.mdの中国語翻訳を追加しました。PR #9641 by @wdh99
  • 🌐 docs/tutorial/extra-models.mdのロシア語翻訳を追加しました。PR #9619 by @ivan-abc
  • 🌐 docs/tutorial/cors.mdのロシア語翻訳を追加しました。PR #9608 by @ivan-abc
  • 🌐 docs/pl/docs/features.mdのポーランド語翻訳を追加しました。PR #5348 by @mbroton
  • 🌐 docs/ru/docs/tutorial/body-nested-models.mdのロシア語翻訳を追加しました。PR #9605 by @Alexandrhub

内部

  • ⬆ ruffを0.0.272から0.0.275に上げました。PR #9721 by @dependabot[bot]
  • ⬆ uvicorn[standard]の要件を<0.21.0,>=0.12.0から>=0.12.0,<0.23.0に更新しました。PR #9463 by @dependabot[bot]
  • ⬆ mypyを1.3.0から1.4.0に上げました。PR #9719 by @dependabot[bot]
  • ⬆ pre-commitの要件を<3.0.0,>=2.17.0から>=2.17.0,<4.0.0に更新しました。PR #9251 by @dependabot[bot]
  • ⬆ pypa/gh-action-pypi-publishを1.8.5から1.8.6に上げました。PR #9482 by @dependabot[bot]
  • ✏️ ドキュメントのライト/ダークテーマ切り替えのツールチップを修正しました。PR #9588 by @pankaj1707k
  • 🔧 パッケージをビルドするために必要な最小のhatchlingバージョンを設定しました。PR #9240 by @mgorny
  • 📝 PyPIへのリポジトリリンクを追加しました。PR #9559 by @JacobCoffee
  • ✏️ テスト用のデータのタイプミスを修正しました。PR #4958 by @ryanrussell
  • 🔧 スポンサーを更新し、Flintを追加しました。PR #9699 by @tiangolo
  • 👷 CIでのLintを一度だけ、Pythonの1つのバージョンのみで実行し、すべてのバージョンでテストを実行するようにしました。PR #9686 by @tiangolo

0.97.0

機能

  • ✨ WebSocketルートでdependenciesのサポートを追加しました。PR #4534 by @paulo-raca
  • WebSocketRequestValidationErrorの例外ハンドラーを追加しました(これによりオーバーライドも可能になります)。PR #6030 by @kristjanvalur

リファクタリング

  • ⬆️ Ruffにアップグレードして完全に移行し、isortを削除し、新しいバージョンのRuffで提案されたいくつかの調整を含めました。PR #9660 by @tiangolo
  • ♻️ 内部の型アノテーションを更新し、mypyをアップグレードしました。PR #9658 by @tiangolo
  • ♻️ Python 3.6がなければAsyncExitStackは常に利用可能であるため、AsyncExitStackMiddlewareを簡素化しました。PR #9657 by @tiangolo

アップグレード

  • ⬆️ Blackをアップグレードしました。PR #9661 by @tiangolo

内部

  • 💚 依存関係が変更されたときにインストールを修正するために、CIキャッシュを更新しました。PR #9659 by @tiangolo
  • ⬇️ 開発用の要件を独自のrequirements.txtファイルに分割しました。それらはextrasであってはなりません。PR #9655 by @tiangolo

0.96.1

修正

  • 🐛 HTTPExceptionヘッダーの型アノテーションを修正しました。PR #9648 by @tiangolo
  • 🐛 OpenAPIモデルフィールドのint検証で、gtegeに修正しました。PR #9635 by @tiangolo

アップグレード

  • 📌 Pydanticの最小バージョンを>=1.7.4に更新しました。これにより、古いバージョンのPydanticを使用しようとしたときに発生する問題を修正します。PR #9567 by @Kludex

リファクタリング

  • ♻ 親クラスから継承されるため、ORJSONResponseからmedia_typeを削除しました。PR #5805 by @Kludex
  • ♻ 必要な場合にのみHTTPExceptionをインスタンス化しました。最適化のリファクタリングです。PR #5356 by @pawamoy

ドキュメント

  • 🔥 Pydanticのベンチマークへのリンクを削除しました。そこに削除されたためです。PR #5811 by @Kludex

翻訳

  • 🌐 docs/id/docs/tutorial/index.mdのインドネシア語翻訳のスペルを修正しました。PR #5635 by @purwowd
  • 🌐 docs/ru/docs/tutorial/index.mdのロシア語翻訳を追加しました。PR #5896 by @Wilidon
  • 🌐 docs/zh/docs/advanced/response-change-status-code.mddocs/zh/docs/advanced/response-headers.mdの中国語翻訳を追加しました。PR #9544 by @ChoyeonChern
  • 🌐 docs/ru/docs/tutorial/schema-extra-example.mdのロシア語翻訳を追加しました。PR #9621 by @Alexandrhub

内部

  • 🔧 スポンサーPlatform.shを追加しました。PR #9650 by @tiangolo
  • 👷 APIレート制限を防ぐために、ダウンロードアーティファクト用のSmokeshowとプレビュードキュメントにカスタムトークンを追加しました。PR #9646 by @tiangolo
  • 👷 レート制限を回避するために、GitHub Actionsにカスタムトークンを追加しました。PR #9647 by @tiangolo

0.96.0

機能

  • ⚡ グローバルキャッシュを使用し、起動パフォーマンスを向上させるために、create_cloned_fieldを更新します。PR #4645 by @madkinsz および、以前のオリジナルPR by @huonw

ドキュメント

  • 📝 Deta Spaceとの互換性のために、Detaデプロイチュートリアルを更新します。PR #6004 by @mikBighne98
  • ✏️ Detaデプロイチュートリアルのタイプミスを修正します。PR #9501 by @lemonyte

翻訳

  • 🌐 docs/tutorial/body.md のロシア語翻訳を追加します。PR #3885 by @solomein-sv
  • 🌐 docs/ru/docs/tutorial/static-files.md のロシア語翻訳を追加します。PR #9580 by @Alexandrhub
  • 🌐 docs/ru/docs/tutorial/query-params.md のロシア語翻訳を追加します。PR #9584 by @Alexandrhub
  • 🌐 docs/ru/docs/tutorial/first-steps.md のロシア語翻訳を追加します。PR #9471 by @AGolicyn
  • 🌐 docs/ru/docs/tutorial/debugging.md のロシア語翻訳を追加します。PR #9579 by @Alexandrhub
  • 🌐 docs/ru/docs/tutorial/path-params.md のロシア語翻訳を追加します。PR #9519 by @AGolicyn
  • 🌐 docs/zh/docs/tutorial/static-files.md の中国語翻訳を追加します。PR #9436 by @wdh99
  • 🌐 docs/es/docs/async.md に新しいイラストを含むスペイン語翻訳を更新します。PR #9483 by @andresbermeoq
  • 🌐 docs/ru/docs/tutorial/path-params-numeric-validations.md のロシア語翻訳を追加します。PR #9563 by @ivan-abc
  • 🌐 docs/ru/docs/deployment/concepts.md のロシア語翻訳を追加します。PR #9577 by @Xewus
  • 🌐 docs/ru/docs/tutorial/body-multiple-params.md のロシア語翻訳を追加します。PR #9586 by @Alexandrhub

内部

0.95.2

翻訳

  • 🌐 docs/pt/docs/advanced/events.md のポルトガル語翻訳を追加します。PR #9326 by @oandersonmagalhaes
  • 🌐 docs/ru/docs/deployment/manually.md のロシア語翻訳を追加します。PR #9417 by @Xewus
  • 🌐 ラオ語への翻訳設定を追加します。PR #9396 by @TheBrown
  • 🌐 docs/ru/docs/tutorial/testing.md のロシア語翻訳を追加します。PR #9403 by @Xewus
  • 🌐 docs/ru/docs/deployment/https.md のロシア語翻訳を追加します。PR #9428 by @Xewus
  • ✏ Windowsで要件をインストールするコマンドを修正します。PR #9445 by @MariiaRomanuik
  • 🌐 docs/fr/docs/advanced/response-directly.md のフランス語翻訳を追加します。PR #9415 by @axel584
  • 🌐 チェコ語翻訳の設定を開始します。PR #9288 by @3p1463k
  • docs/pt/docs/index.md のポルトガル語ドキュメントのタイプミスを修正します。PR #9337 by @lucasbalieiro
  • 🌐 docs/ru/docs/tutorial/response-status-code.md のロシア語翻訳を追加します。PR #9370 by @nadia3373

内部

  • 🐛 内部テストのflask.escape警告を修正します。PR #9468 by @samuelcolvin
  • ✅ 一貫性と簡素化のため、2つのテストをリファクタリングします。PR #9504 by @tiangolo
  • ✅ OpenAPIテストをリファクタリングし、Pydantic v2の準備をします。PR #9503 by @tiangolo
  • ⬆ dawidd6/action-download-artifactを2.26.0から2.27.0に引き上げます。PR #9394 by @dependabot[bot]
  • 💚 CIでsetup-python pipキャッシュを無効にします。PR #9438 by @tiangolo
  • ⬆ pypa/gh-action-pypi-publishを1.6.4から1.8.5に引き上げます。PR #9346 by @dependabot[bot]

0.95.1

修正

  • 🐛 複数回デコレートされたルーターまたはパス操作でAnnotatedを使用する問題を修正します。PR #9315 by @sharonyogev

ドキュメント

  • 🌐 🔠 📄 🐢 ドキュメントを絵文字に翻訳 🥳 🎉 💥 🤯 🤯. PR #5385 by @LeeeeT
  • 📝 Annotatedをサポートしていない古いバージョンのFastAPIに関する警告メッセージを追加します。PR #9298 by @grdworkin
  • 📝 docs/en/docs/advanced/behind-a-proxy.md のタイプミスを修正します。PR #5681 by @Leommjr
  • docs/fa/docs/index.md のペルシア語翻訳でtypingモジュールからの誤ったインポートを修正します。PR #6083 by @Kimiaattaei
  • docs/en/docs/help-fastapi.md のフォーマットを修正し、不要なアスタリスクを削除します。PR #9249 by @armgabrielyan
  • docs/en/docs/tutorial/query-params-str-validations.md のタイプミスを修正します。PR #9272 by @nicornk
  • docs/en/docs/tutorial/query-params-str-validations.md のインラインコード例のタイプミス/バグを修正します。PR #9273 by @tim-habitat
  • docs/en/docs/tutorial/path-params-numeric-validations.md のタイプミスを修正します。PR #9282 by @aadarsh977
  • docs/en/docs/tutorial/query-params-str-validations.md の'wll'を'will'に修正します。PR #9380 by @dasstyxx

翻訳

  • 🌐 docs/fr/docs/advanced/index.md のフランス語翻訳を追加します。PR #5673 by @axel584
  • 🌐 docs/pt/docs/tutorial/body-nested-models.md のポルトガル語翻訳を追加します。PR #4053 by @luccasmmg
  • 🌐 docs/ru/docs/alternatives.md のロシア語翻訳を追加します。PR #5994 by @Xewus
  • 🌐 docs/pt/docs/tutorial/extra-models.md のポルトガル語翻訳を追加します。PR #5912 by @LorhanSohaky
  • 🌐 docs/pt/docs/tutorial/path-operation-configuration.md のポルトガル語翻訳を追加します。PR #5936 by @LorhanSohaky
  • 🌐 docs/ru/docs/contributing.md のロシア語翻訳を追加します。PR #6002 by @stigsanek
  • 🌐 docs/tutorial/dependencies/classes-as-dependencies.md の韓国語翻訳を追加します。PR #9176 by @sehwan505
  • 🌐 docs/ru/docs/project-generation.md のロシア語翻訳を追加します。PR #9243 by @Xewus
  • 🌐 docs/fr/docs/index.md のフランス語翻訳を追加します。PR #9265 by @frabc
  • 🌐 docs/ru/docs/tutorial/query-params-str-validations.md のロシア語翻訳を追加します。PR #9267 by @dedkot01
  • 🌐 docs/ru/docs/benchmarks.md のロシア語翻訳を追加します。PR #9271 by @Xewus

内部

  • 🔧 スポンサーを更新し、Jinaを削除します。PR #9388 by @tiangolo
  • 🔧 スポンサーを更新し、databentoを追加し、InesのコースとStriveWorksを削除します。PR #9351 by @tiangolo

0.95.0

ハイライト

このリリースでは、Annotatedを使用した依存関係とパラメーターのサポートが追加され、その使用が推奨されています。✨

これにはいくつかの利点があり、主なものの1つは、Annotatedを使用した関数のパラメーターがまったく影響を受けないことです。

コードの他の場所でそれらの関数を呼び出す場合、実際のデフォルト値が保持され、エディターは不足している必須引数に気づくのに役立ち、Pythonは実行時に必須引数を渡すことを要求し、異なる目的や異なるライブラリ(例:TyperもまもなくAnnotatedをサポートするため、APIとCLIに同じ関数を使用できるようになります)などで同じ関数を使用できるようになります。

Annotated標準Pythonであるため、オートコンプリートインラインエラーなど、エディターやツールからのすべての利点を引き続き得ることができます。

最大の利点の1つは、複数のパス操作関数で共有されるAnnotated依存関係を作成できるようになったことです。これにより、エディターとツールからのすべてのサポートを維持しながら、コードベース内のコードの重複を大幅に削減できます。

たとえば、次のようなコードを使用できます。

def get_current_user(token: str):
    # authenticate user
    return User()


@app.get("/items/")
def read_items(user: User = Depends(get_current_user)):
    ...


@app.post("/items/")
def create_item(*, user: User = Depends(get_current_user), item: Item):
    ...


@app.get("/items/{item_id}")
def read_item(*, user: User = Depends(get_current_user), item_id: int):
    ...


@app.delete("/items/{item_id}")
def delete_item(*, user: User = Depends(get_current_user), item_id: int):
    ...

依存関係には少しコードの重複があります。

user: User = Depends(get_current_user)

...コードベースが大きくなると、より顕著になります。

これで、以下のようにアノテーション付きの依存関係を一度作成できます。

CurrentUser = Annotated[User, Depends(get_current_user)]

そして、このAnnotated依存関係を再利用できます。

CurrentUser = Annotated[User, Depends(get_current_user)]


@app.get("/items/")
def read_items(user: CurrentUser):
    ...


@app.post("/items/")
def create_item(user: CurrentUser, item: Item):
    ...


@app.get("/items/{item_id}")
def read_item(user: CurrentUser, item_id: int):
    ...


@app.delete("/items/{item_id}")
def delete_item(user: CurrentUser, item_id: int):
    ...

...また、CurrentUserUserと同じすべての型情報を持つため、エディターは期待どおりに動作し(オートコンプリートなど)、FastAPIAnnotatedで定義された依存関係を理解できます。😎

大まかに言うと、すべてのドキュメントは、パラメーター依存関係を宣言する主な方法としてAnnotatedを使用するように書き直されました。ドキュメント内のすべての例には、特定のPythonバージョンごとに(より新しいバージョンでわずかな違い/改善がある場合)、Annotatedを使用したバージョンと、それを使用しないバージョンが含まれるようになりました。ドキュメント、例、テストの間で、約23,000行の新しい行が追加されました。🚀

主な更新されたドキュメントは以下のとおりです。

コア実装をしてくれた@nzig、そして@adriangbXpressoでのインスピレーションとアイデアに特別な感謝を捧げます!🚀

機能

  • ✨依存関係とパラメーターを指定するためのPEP-593 Annotatedのサポートを追加。PR #4871 by @nzig

ドキュメント

  • 📝ドキュメントでAnnotatedを推奨するヒントを調整。PR #9270 by @tiangolo
  • 📝例の順序を更新し、最新のPythonバージョンを最初に表示し、バージョンのタブ名を簡略化。PR #9269 by @tiangolo
  • 📝すべてのドキュメントを更新し、Annotatedを主な推奨事項として使用し、新しい例とテストを追加。PR #9268 by @tiangolo

0.94.1

修正

  • 🎨ライフスパンの型を修正し、Starletteを0.26.1にアップグレード。PR #9245 by @tiangolo

0.94.0

アップグレード

  • ⬆ python-multipartを0.0.6をサポートするようにアップグレード。PR #9212 by @musicinmybrain
  • ⬆️Starletteバージョンをアップグレードし、状態を持つ新しいlifespanをサポート。PR #9239 by @tiangolo

ドキュメント

  • 📝ドキュメントのSentryリンクを更新。PR #9218 by @smeubank

翻訳

  • 🌐docs/ru/docs/history-design-future.mdのロシア語翻訳を追加。PR #5986 by @Xewus

内部

0.93.0

機能

  • lifespan非同期コンテキストマネージャー(startupおよびshutdownイベントに取って代わる)のサポートを追加。最初のPR #2944 by @uSpike

独立したstartupshutdownイベントを使用する代わりに、@asynccontextmanagerで装飾されたyieldを持つ単一の関数(非同期コンテキストマネージャー)でそのロジックを定義できます。

例:

from contextlib import asynccontextmanager

from fastapi import FastAPI


def fake_answer_to_everything_ml_model(x: float):
    return x * 42


ml_models = {}


@asynccontextmanager
async def lifespan(app: FastAPI):
    # Load the ML model
    ml_models["answer_to_everything"] = fake_answer_to_everything_ml_model
    yield
    # Clean up the ML models and release the resources
    ml_models.clear()


app = FastAPI(lifespan=lifespan)


@app.get("/predict")
async def predict(x: float):
    result = ml_models["answer_to_everything"](x)
    return {"result": result}

注意:これは、startupおよびshutdownイベントを使用する代わりに、今後推奨される方法です。

詳細については、新しいドキュメント「上級ユーザーガイド:ライフスパンイベント」を参照してください。

ドキュメント

  • ReDocdocs/en/docs/tutorial/metadata.mdのフォーマットを修正。PR #6005 by @eykamp

翻訳

  • 🌐タミル語翻訳 - 初期設定。PR #5564 by @gusty1g
  • 🌐docs/fr/docs/advanced/path-operation-advanced-configuration.mdのフランス語翻訳を追加。PR #9221 by @axel584
  • 🌐docs/tutorial/debugging.mdのフランス語翻訳を追加。PR #9175 by @frabc
  • 🌐アルメニア語翻訳のセットアップを開始。PR #5844 by @har8
  • 🌐deployment/manually.mdのフランス語翻訳を追加。PR #3693 by @rjNemo

内部

  • 👷翻訳ボットメッセージを更新。PR #9206 by @tiangolo
  • 👷翻訳ボットを更新して議論を使用し、PRが完了したときに通知。PR #9183 by @tiangolo
  • 🔧スポンサーバッジを更新。PR #9182 by @tiangolo
  • 👥FastAPIの人々を更新。PR #9181 by @github-actions[bot]
  • 🔊GraphQLエラーをFastAPI Peopleにログ記録。200を返し、エラーを含むペイロードがあるため。PR #9171 by @tiangolo
  • 💚FastAPI Peopleのgitを使用したDockerでのGitHub Actionsの修正/回避策。PR #9169 by @tiangolo
  • ♻️質問が移行されたため、FastAPIエキスパートをリファクタリングして、ディスカッションのみを使用するようにします。PR #9165 by @tiangolo
  • ⬆️分析をアップグレード。PR #6025 by @tiangolo
  • ⬆️Typer-CLIのインストールをアップグレードして再度有効化。PR #6008 by @tiangolo

0.92.0

🚨これはセキュリティ修正です。できるだけ早くアップグレードしてください。

アップグレード

  • ⬆️Starletteを0.25.0にアップグレード。PR #5996 by @tiangolo
    • これにより、多数の小さなマルチパートフィールド/ファイル(パーツ)を使用し、高いCPUとメモリを消費することによるサービス拒否攻撃を可能にする可能性のある脆弱性が解決されます。
    • フォーム(ファイルのアップロードなど)を使用するアプリケーションのみが影響を受ける可能性があります。
    • ほとんどの場合、アップグレードによって破壊的な変更は発生しません。

0.91.0

アップグレード

  • ⬆️Starletteバージョンを0.24.0にアップグレードし、互換性のために内部をリファクタリング。PR #5985 by @tiangolo
    • これにより、ミドルウェアを使用する際の微妙なエラーを解決できます。Starlette 0.24.0より前では、新しいミドルウェアが追加されるたびに、各ミドルウェアクラスの新しいインスタンスが作成されていました。通常は問題ありませんでしたが、ミドルウェアクラスが1回だけ作成され、1つのインスタンスのみを持つことを期待している場合、いくつかのケースで発生しました。このアップグレードはそれらのケースを解決します(@adriangbに感謝します!Starlette PR #2017)。ミドルウェアクラスのインスタンスは、最初の要求の直前(アプリが最初に呼び出されたとき)に1回作成されるようになりました。
    • 以前の動作に依存していた場合は、コードを更新する必要があるかもしれません。いつものように、アップグレードをマージする前にテストに合格していることを確認してください。

0.90.1

アップグレード

  • ⬆️Starletteの範囲をアップグレードして、0.23.1を許可。PR #5980 by @tiangolo

ドキュメント

  • docs/en/docs/project-generation.mdを明確にするために文言を調整。PR #5930 by @chandra-deb
  • ✏PydanticのGitHub URLを更新。PR #5952 by @yezz123
  • 📝Ciscoからの意見を追加。PR #5981 by @tiangolo

翻訳

  • 🌐docs/ru/docs/tutorial/cookie-params.mdのロシア語翻訳を追加。PR #5890 by @bnzone

内部

  • zip-docs.sh内部スクリプトを更新し、余分なスペースを削除。PR #5931 by @JuanPerdomo00

0.90.0

アップグレード

  • ⬆️Starletteを0.22.0から0.23.0にバンプ。最初のPR #5739 by @Kludex

ドキュメント

  • 📝外部リンクに記事「Tortoise ORM / FastAPI 整合快速筆記」を追加。PR #5496 by @Leon0824
  • 👥FastAPIの人々を更新。PR #5954 by @github-actions[bot]
  • 📝ヘルプドキュメントを微調整。PR #5960 by @tiangolo
  • 🔧新しい課題の選択肢を更新して、GitHubディスカッションに誘導。PR #5948 by @tiangolo
  • 📝質問についてはGitHubディスカッションを推奨。PR #5944 by @tiangolo

翻訳

  • 🌐docs/ru/docs/tutorial/body-fields.mdのロシア語翻訳を追加。PR #5898 by @simatheone
  • 🌐docs/ru/docs/help-fastapi.mdのロシア語翻訳を追加。PR #5970 by @tiangolo
  • 🌐docs/pt/docs/tutorial/static-files.mdのポルトガル語翻訳を追加。PR #5858 by @batlopes
  • 🌐docs/pt/docs/tutorial/encoder.mdのポルトガル語翻訳を追加。PR #5525 by @felipebpl
  • 🌐docs/ru/docs/contributing.mdのロシア語翻訳を追加。PR #5870 by @Xewus

内部

  • ⬆️ドキュメントワークフローのUbuntuバージョンをアップグレード。PR #5971 by @tiangolo
  • 🔧 スポンサーバッジを更新しました。PR #5943 by @tiangolo
  • ✨ GitHub Discussions を含む FastAPI エキスパートを算出しました。PR #5941 by @tiangolo
  • ⬆️ isort をアップグレードし、pre-commit を更新しました。PR #5940 by @tiangolo
  • 🔧 Discussions の質問用テンプレートを追加しました。PR #5920 by @tiangolo
  • 🔧 スポンサー予算のインサイトを Powens に更新しました。PR #5916 by @tiangolo
  • 🔧 GitHub Sponsors バッジデータを更新しました。PR #5915 by @tiangolo

0.89.1

修正

  • 🐛 戻り値のアノテーションで Response クラスを無視するようにしました。PR #5855 by @Kludex。下記のPRの新しいドキュメントを参照してください。

ドキュメント

翻訳

  • 🌐 docs/tr/docs/tutorial/first_steps.md のトルコ語翻訳を追加しました。PR #5691 by @Kadermiyanyedi

0.89.0

機能

  • ✨ 関数戻り値の型アノテーションで response_model を宣言するサポートを追加しました。最初のPR #1436 by @uriyyo

関数戻り値の型アノテーションで戻り値の型/ response_model を宣言できるようになりました

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):
    name: str
    price: float


@app.get("/items/")
async def read_items() -> list[Item]:
    return [
        Item(name="Portal Gun", price=42.0),
        Item(name="Plumbus", price=32.0),
    ]

FastAPIは戻り値の型アノテーションを使用して、以下を実行します

  • データ検証
  • 自動ドキュメント
    • 自動クライアントジェネレーターを強化できます
  • データフィルタリング

このバージョン以前は、response_model パラメーター経由でのみサポートされていました。

詳細については、新しいドキュメント:レスポンスモデル - 戻り値の型 を参照してください。

ドキュメント

  • 📝 外部リンクを追加しました:Casbinを使用したFastAPIの認証。PR #5712 by @Xhy-5000
  • docs/en/docs/async.md のタイプミスを修正しました。PR #5785 by @Kingdageek
  • docs/en/docs/deployment/concepts.md のタイプミスを修正しました。PR #5824 by @kelbyfaessler

翻訳

  • 🌐 docs/ru/docs/fastapi-people.md のロシア語翻訳を追加しました。PR #5577 by @Xewus
  • 🌐 docs/zh/docs/benchmarks.md の中国語翻訳のタイプミスを修正しました。PR #4269 by @15027668g
  • 🌐 docs/tutorial/cors.md の韓国語翻訳を追加しました。PR #3764 by @NinaHwang

内部

  • ⬆ coverage[toml] の要件を <7.0,>=6.5.0 から >=6.5.0,<8.0 に更新しました。PR #5801 by @dependabot[bot]
  • ⬆ 開発用に uvicorn[standard] の要件を <0.19.0,>=0.12.0 から >=0.12.0,<0.21.0 に更新しました。PR #5795 by @dependabot[bot]
  • ⬆ dawidd6/action-download-artifact を 2.24.2 から 2.24.3 に更新しました。PR #5842 by @dependabot[bot]
  • 👥 FastAPI People を更新しました。PR #5825 by @github-actions[bot]
  • ⬆ types-ujson を 5.5.0 から 5.6.0.0 に更新しました。PR #5735 by @dependabot[bot]
  • ⬆ pypa/gh-action-pypi-publish を 1.5.2 から 1.6.4 に更新しました。PR #5750 by @dependabot[bot]
  • 👷 GitHub Action ゲート/チェックを追加しました。PR #5492 by @webknjaz
  • 🔧 スポンサーを更新し、Svix を追加しました。PR #5848 by @tiangolo
  • 🔧 Doist スポンサーを削除しました。PR #5847 by @tiangolo
  • ⬆ sqlalchemy の要件を <=1.4.41,>=1.3.18 から >=1.3.18,<1.4.43 に更新しました。PR #5540 by @dependabot[bot]
  • ⬆ nwtgck/actions-netlify を 1.2.4 から 2.0.0 に更新しました。PR #5757 by @dependabot[bot]
  • 👷 ドキュメントプレビュー用のCI成果物のアップロード/ダウンロードをリファクタリングしました。PR #5793 by @tiangolo
  • ⬆ pypa/gh-action-pypi-publish を 1.5.1 から 1.5.2 に更新しました。PR #5714 by @dependabot[bot]
  • 👥 FastAPI People を更新しました。PR #5722 by @github-actions[bot]
  • 🔧 スポンサーを更新し、コースバンドルを無効にしました。PR #5713 by @tiangolo
  • ⬆ typer[all] の要件を <0.7.0,>=0.6.1 から >=0.6.1,<0.8.0 に更新しました。PR #5639 by @dependabot[bot]

0.88.0

アップグレード

  • ⬆ Starlette をバージョン 0.22.0 に更新し、新しい TestClient のクエリパラメーターのエンコードのバグを修正しました。PR #5659 by @azogue

ドキュメント

  • ✏️ docs/en/docs/advanced/middleware.md のドキュメントのタイプミスを修正しました。PR #5376 by @rifatrakib

翻訳

  • 🌐 docs/pt/docs/deployment/docker.md のポルトガル語翻訳を追加しました。PR #5663 by @ayr-ton

内部

  • 👷 CIのパフォーマンスを向上させるためにbuild-docsを調整しました。PR #5699 by @tiangolo
  • ⬆ [pre-commit.ci] pre-commit を自動更新しました。PR #5566 by @pre-commit-ci[bot]
  • ⬆️ Ruff をアップグレードしました。PR #5698 by @tiangolo
  • 👷 Smokeshow が requirements.txt に依存しているため、pip キャッシュを削除しました。PR #5700 by @tiangolo
  • 💚 Smokeshow の pip キャッシュを修正しました。PR #5697 by @tiangolo
  • 👷 CI キャッシュ処理を修正および調整しました。PR #5696 by @tiangolo
  • 👷 テストで setup-python アクションを更新して、新しいキャッシュ機能を使用するようにしました。PR #5680 by @madkinsz
  • ⬆ black を 22.8.0 から 22.10.0 に更新しました。PR #5569 by @dependabot[bot]

0.87.0

このリリースのハイライト

  • Starletteをアップグレードしました
    • TestClient が Requests の代わりに HTTPX に基づくようになりました。🚀
    • TestClient の使用にはいくつかの**破壊的な変更**の可能性がありますが、@Kludex がテストの移行を自動化するのに役立つ bump-testclient を作成しました。bump-testclient を使用する前に、Git を使用していること、および不要な変更(偽陽性の変更など)を元に戻せることを確認してください。
  • Starletteから再エクスポートされた新しいWebSocketException(およびドキュメント)
  • パッケージエクストラall(新しいUvicornバージョンを含む)の依存関係をアップグレードおよび緩和しました。"fastapi[all]"をインストールするときに適用されます。
  • FastAPIのメンテナンスを支援する方法に関する新しいドキュメント。

機能

  • ⬆️ エクストラ "all" の依存関係をアップグレードおよび緩和しました。PR #5634 by @tiangolo
  • ✨ Starlette の WebSocketException を再エクスポートし、ドキュメントに追加しました。PR #5629 by @tiangolo
  • 📝 テストで Requests を参照していたものを HTTPX に更新し、HTTPX をエクストラに追加しました。PR #5628 by @tiangolo
  • ⬆ Starlette を 0.21.0 にアップグレードしました。新しい HTTPX ベースの TestClient を含みます。PR #5471 by @pawelrubin

ドキュメント

  • ✏️ マージ後のPRレビューから、Help FastAPIを調整しました。PR #5633 by @tiangolo
  • ✏️ CORSに関するドキュメントを明確化しました。PR #5627 by @paxcodes
  • 📝 Help FastAPI を更新しました:FastAPIのメンテナンスを支援する。PR #5632 by @tiangolo

翻訳

  • 🌐 docs/tutorial/query-params.md の日本語翻訳のハイライト行を修正しました。PR #2969 by @ftnext
  • 🌐 docs/fr/docs/advanced/additional-status-code.md のフランス語翻訳を追加しました。PR #5477 by @axel584
  • 🌐 docs/pt/docs/tutorial/request-forms-and-files.md のポルトガル語翻訳を追加しました。PR #5579 by @batlopes
  • 🌐 docs/ja/docs/advanced/websockets.md の日本語翻訳を追加しました。PR #4983 by @xryuseix

内部

  • ✨ リンティングに Ruff を使用しました。PR #5630 by @tiangolo
  • 🛠 アラビア語の Issue 番号を Notify Translations GitHub Action に追加しました。PR #5610 by @tiangolo
  • ⬆ dawidd6/action-download-artifact を 2.24.1 から 2.24.2 に更新しました。PR #5609 by @dependabot[bot]
  • ⬆ dawidd6/action-download-artifact を 2.24.0 から 2.24.1 に更新しました。PR #5603 by @dependabot[bot]
  • 📝 Samuel Colvin の Smokeshow を使用するようにカバレッジバッジを更新しました。PR #5585 by @tiangolo

0.86.0

機能

  • ⬆ 公式サポートバージョンに Python 3.11 を追加しました。PR #5587 by @tiangolo
  • ✅ Python 3.11 のテストを有効にしました。PR #4881 by @tiangolo

修正

  • 🐛 リクエストが完了した後、FormData(アップロードされたファイル)を閉じます。PR #5465 by @adriangb

ドキュメント

  • docs/en/docs/tutorial/security/oauth2-jwt.md のタイプミスを修正しました。PR #5584 by @vivekashok1221

翻訳

  • 🌐 docs/zh/docs/python-types.md の中国語翻訳の文言を更新しました。PR #5416 by @supercaizehua.
  • 🌐 docs/ru/docs/deployment/index.md のロシア語翻訳を追加しました。PR #5336 by @Xewus.
  • 🌐 docs/tutorial/security/oauth2-jwt.md の中国語翻訳を更新しました。PR #3846 by @jaystone776.

内部

  • 👷 FastAPI People からボット(pre-commit-ci、dependabot)を除外しました。PR #5586 by @tiangolo.
  • 🎨 test_starlette_exception.py の OpenAPI JSON をフォーマットしました。PR #5379 by @iudeen.
  • 👷 内部テストで、Codecov から Smokeshow と pytest-cov を使用したピュアなカバレッジに切り替えました。PR #5583 by @tiangolo.
  • 👥 FastAPI People を更新しました。PR #5571 by @github-actions[bot].

0.85.2

ドキュメント

  • docs/en/docs/async.md の文法を修正し、依存関係への役立つリンクを追加しました。PR #5432 by @pamelafox.
  • alternatives.md の壊れたリンクを修正しました。PR #5455 by @su-shubham.
  • ✏ Zsh での pip との互換性のために、貢献に関するドキュメントのタイプミスを修正しました。PR #5523 by @zhangbo2012.
  • 📝 Python 3.9 の代わりに Python 3.10 の例を使用したドキュメントのタイプミスを修正しました。PR #5545 by @feliciss.

翻訳

  • 🌐 docs/pt/docs/tutorial/request-forms.md のポルトガル語翻訳を追加しました。PR #4934 by @batlopes.
  • 🌐 docs/zh/docs/tutorial/dependencies/classes-as-dependencies.md の中国語翻訳を追加しました。PR #4971 by @Zssaer.
  • 🌐 deployment/deta.md のフランス語翻訳を追加しました。PR #3692 by @rjNemo.
  • 🌐 docs/zh/docs/tutorial/query-params-str-validations.md の中国語翻訳を更新しました。PR #5255 by @hjlarry.
  • 🌐 docs/zh/docs/tutorial/sql-databases.md の中国語翻訳を追加しました。PR #4999 by @Zssaer.
  • 🌐 docs/zh/docs/advanced/wsgi.md の中国語翻訳を追加しました。PR #4505 by @ASpathfinder.
  • 🌐 docs/pt/docs/tutorial/body-multiple-params.md のポルトガル語翻訳を追加しました。PR #4111 by @lbmendes.
  • 🌐 docs/pt/docs/tutorial/path-params-numeric-validations.md のポルトガル語翻訳を追加しました。PR #4099 by @lbmendes.
  • 🌐 deployment/versions.md のフランス語翻訳を追加しました。PR #3690 by @rjNemo.
  • 🌐 docs/fr/docs/help-fastapi.md のフランス語翻訳を追加しました。PR #2233 by @JulianMaurin.
  • 🌐 docs/zh/docs/tutorial/security/first-steps.md の中国語翻訳のタイプミスを修正しました。PR #5530 by @yuki1sntSnow.
  • 🌐 docs/pt/docs/tutorial/response-status-code.md のポルトガル語翻訳を追加しました。PR #4922 by @batlopes.
  • 🔧 タミル語翻訳の設定を追加しました。PR #5563 by @tiangolo.

内部

  • ⬆ 内部依存関係の mypy を 0.971 から 0.982 に更新しました。PR #5541 by @dependabot[bot].
  • ⬆ nwtgck/actions-netlify を 1.2.3 から 1.2.4 に更新しました。PR #5507 by @dependabot[bot].
  • ⬆ 内部依存関係の types-ujson を 5.4.0 から 5.5.0 に更新しました。PR #5537 by @dependabot[bot].
  • ⬆ dawidd6/action-download-artifact を 2.23.0 から 2.24.0 に更新しました。PR #5508 by @dependabot[bot].
  • ⬆ 内部依存関係の pytest-cov の要件を <4.0.0,>=2.12.0 から >=2.12.0,<5.0.0 に更新しました。PR #5539 by @dependabot[bot].
  • ⬆ [pre-commit.ci] pre-commit autoupdate。PR #5536 by @pre-commit-ci[bot].
  • 🐛 内部 Trio テストの警告を修正しました。PR #5547 by @samuelcolvin.
  • ⬆ [pre-commit.ci] pre-commit autoupdate。PR #5408 by @pre-commit-ci[bot].
  • ⬆️ ドキュメント用のスクリプトに Rich を含めるように Typer をアップグレードしました。PR #5502 by @tiangolo.
  • 🐛 MkDocs Material 検索プラグインを修正/有効にするために、サブプロセスとして言語用の mkdocs の呼び出しを修正しました。PR #5501 by @tiangolo.

0.85.1

修正

  • 🐛 OpenAPI ステータスコードの文字列 (default, 1XX, 2XX, 3XX, 4XX, 5XX) のサポートを修正しました。PR #5187 by @JarroVGIT.

ドキュメント

  • 📝 外部リンクセクションに WayScript x FastAPI チュートリアルを追加しました。PR #5407 by @moneeka.

内部

0.85.0

機能

  • ⬆ Starlette の必要なバージョンを 0.19.1 から 0.20.4 にアップグレードしました。最初の PR #4820 by @Kludex.
    • これには、Starlette のいくつかのバグ修正が含まれています。
  • ⬆️ パブリック extras: all で Uvicorn の最大バージョンをアップグレードしました。>=0.12.0,<0.18.0 から >=0.12.0,<0.19.0 へ。PR #5401 by @tiangolo.

内部

  • ⬆️ ドキュメントと開発の内部 extras の依存関係をアップグレードしました。Typer、Uvicorn。PR #5400 by @tiangolo.
  • ⬆️ テストの依存関係をアップグレードしました。Black, HTTPX, databases, types-ujson。PR #5399 by @tiangolo.
  • ⬆️ mypy をアップグレードし、内部型アノテーションを調整しました。PR #5398 by @tiangolo.
  • 🔧 テストの依存関係を更新し、Pytest をアップグレードし、依存関係を開発からテストに移動しました。PR #5396 by @tiangolo.

0.84.0

破壊的な変更

このバージョンの FastAPI では、Python 3.6 のサポートを削除しました。🔥 Python のサポートされているバージョン(3.7 以上)にアップグレードしてください。Python 3.6 はだいぶ前に寿命が尽きています。😅☠

  • 🔧 パッケージメタデータを更新し、Python 3.6 のサポートを削除し、ビルド内部を Flit から Hatch に移動しました。PR #5240 by @ofek.

0.83.0

🚨 これは、Python 3.6 をサポートする最後のリリース(または最後のリリースの一つ)である可能性があります。🔥

Python 3.6 は、約1年前から、寿命が尽きて、Python によってサポートされなくなりました

うまくいけば、しばらく前に Python のサポートされているバージョンに更新したでしょう。まだ更新していない場合は、本当に更新する必要があります。

機能

  • jsonable_encoder で、データクラスを使用した include および exclude のサポートを追加しました。PR #4923 by @DCsunset.

修正

  • 🐛 HTTPException にコンテンツのないステータスコードがある場合に発生する RuntimeError を修正しました。PR #5365 by @iudeen.
  • 🐛 デフォルトの status_code が空で、response.status_code が設定された Response パラメーターがある場合の空の応答本文を修正しました。PR #5360 by @tmeckel.

ドキュメント

  • 📝 SECURITY.md を更新しました。PR #5377 by @Kludex.

内部

0.82.0

🚨 これは、Python 3.6 をサポートする最後のリリース(または最後のリリースの一つ)である可能性があります。🔥

Python 3.6 は、約1年前から、寿命が尽きて、Python によってサポートされなくなりました

うまくいけば、しばらく前に Python のサポートされているバージョンに更新したでしょう。まだ更新していない場合は、本当に更新する必要があります。

機能

  • fastapi.websocketsWebSocketState をエクスポートしました。PR #4376 by @matiuszka.
  • ✨ Pydantic モデルのドキュメンテーション文字列で Python 内部記述をサポートします。PR #3032 by @Kludex.
  • ORJSONResponse を更新して、非 str キーをサポートし、Numpy 配列をシリアル化するようにしました。PR #3892 by @baby5.

修正

  • 🐛 yield を使用した依存関係の終了コードが常に実行されるように、それらの容量制限を削除することで、例えばデッドロックなしで DB 接続を閉じることができます。PR #5122 by @adriangb.
  • 🐛 FastAPI People GitHub アクションを修正しました: GraphQL クエリリクエストの HTTPX タイムアウトを設定します。PR #5222 by @iudeen.
  • 🐛 必須として定義されたパラメーターが、別の依存関係でオプションとして定義されていても、OpenAPI で必須として保持されるようにしました。PR #4319 by @cd17822.
  • 🐛 WebSockets でのパスパラメーターのサポートを修正しました。PR #3879 by @davidbrochart.

ドキュメント

  • ✏ Hypercorn リンクを更新しました。現在は GitHub を指しています。PR #5346 by @baconfield.
  • docs/en/docs/advanced/dataclasses.md の文言を調整しました。PR #3698 by @pfackeldey.
  • 📝 レスポンスモデルの説明に Python 3.10 の X | Y 演算子に関するメモを追加しました。PR #5307 by @MendyLanda.
  • 📝 New Relic の記事「Pythonエージェントを使ってFastAPIアプリケーションのパフォーマンスを監視する方法」へのリンクを追加。PR #5260 by @sjyothi54.
  • 📝 パフォーマンス向上に関する詳細を含めて、ORJSONResponse のドキュメントを更新。PR #2615 by @falkben.
  • 📝 カスタム Response クラスを作成するためのドキュメントを追加。PR #5331 by @tiangolo.
  • 📝 フォームデータフィールドのエイリアスを使用することに関するヒントを追加。PR #5329 by @tiangolo.

翻訳

  • 🌐 docs/ru/docs/features.md のロシア語翻訳を追加。PR #5315 by @Xewus.
  • 🌐 docs/zh/docs/tutorial/request-files.md の中国語翻訳を更新。PR #4529 by @ASpathfinder.
  • 🌐 docs/zh/docs/tutorial/encoder.md の中国語翻訳を追加。PR #4969 by @Zssaer.
  • 🌐 background-task.md のポルトガル語翻訳の MkDocs ファイルの行を修正。PR #5242 by @ComicShrimp.

内部

  • 👥 FastAPI People を更新。PR #5347 by @github-actions[bot].
  • ⬆ dawidd6/action-download-artifact を 2.22.0 から 2.23.0 に更新。PR #5321 by @dependabot[bot].
  • ⬆ [pre-commit.ci] pre-commit autoupdate。PR #5318 by @pre-commit-ci[bot].
  • ✏ 小さなコードハイライトの行エラーを修正。PR #5256 by @hjlarry.
  • ♻ 内部の小さなリファクタリング、コードとの一貫性を保つために delete メソッドの operation_id パラメータの位置を移動。PR #4474 by @hiel.
  • 🔧 スポンサーを更新、ImgWhale を無効化。PR #5338 by @tiangolo.

0.81.0

機能

  • ✨ JS が無効な場合の ReDoc <noscript> 警告を追加。PR #5074 by @evroon.
  • ✨ パラメータ(例:クエリ)で FrozenSet のサポートを追加。PR #2938 by @juntatalor.
  • ✨ カスタムミドルウェアで HTTPException を発生させ、伝播できるようにする。PR #2036 by @ghandic.
  • ✨ リクエストボディで無効なJSONを処理する際、その情報を使用するカスタム例外ハンドラーをサポートするために、json.JSONDecodeError の情報を保持。PR #4057 by @UKnowWhoIm.

修正

  • 🐛 pydantic互換のフィールドを持つデータクラスの jsonable_encoder を修正。PR #3607 by @himbeles.
  • 🐛 パラメータリストで openapi_extras を拡張するためのサポートを修正。PR #4267 by @orilevari.

ドキュメント

  • docs/en/docs/python-types.md の簡単なタイプミスを修正。PR #5193 by @GlitchingCore.
  • tests/test_schema_extra_examples.py のタイプミスを修正。PR #5126 by @supraaxdd.
  • docs/en/docs/tutorial/path-params-numeric-validations.md のタイプミスを修正。PR #5142 by @invisibleroads.
  • 📝 依存関係をインストールする際にエラーを回避するために、venv の pip をアップグレードする手順を追加 docs/en/docs/contributing.md。PR #5181 by @edisnake.
  • ✏ チュートリアルのテキストを言い換え、明確化 docs/en/docs/tutorial/body-nested-models.md。PR #5169 by @papb.
  • docs/en/docs/features.md の小さなタイプミスを修正。PR #5206 by @OtherBarry.
  • docs/en/docs/async.md の小さなタイプミスを修正。PR #5125 by @Ksenofanex.
  • 📝 外部ドキュメントへのリンクを追加:「Fastapi、Docker(Docker compose)、およびPostgres」。PR #5033 by @krishnardt.
  • 📝 追加レスポンスのドキュメントの例を簡略化、不要な else を削除。PR #4693 by @adriangb.
  • 📝 ドキュメントを更新、列挙型を等価性ではなく同一性で比較。PR #4905 by @MicaelJarniac.
  • docs/en/docs/python-types.md のタイプミスを修正。PR #4886 by @MicaelJarniac.
  • 🎨 OpenAPI コールバックのドキュメントの構文ハイライトを修正。PR #4368 by @xncbf.
  • ✏ ドキュメントファイル typo-fix-path-params-numeric-validations.md の紛らわしい文を言い換える。PR #3219 by @ccrenfroe.
  • 📝 非ASCII文字に対応するために、secrets.compare_digest() を使用したHTTP Basic Auth の処理に関するドキュメントを更新。PR #3536 by @lewoudar.
  • 📝 テストに関するドキュメントを更新、相対インポートを含む例を修正。PR #5302 by @tiangolo.

翻訳

  • 🌐 docs/ru/docs/index.md のロシア語翻訳を追加。PR #5289 by @impocode.
  • 🌐 docs/ru/docs/deployment/versions.md のロシア語翻訳を追加。PR #4985 by @emp7yhead.
  • 🌐 docs/pt/docs/tutorial/header-params.md のポルトガル語翻訳を追加。PR #4921 by @batlopes.
  • 🌐 リンクが欠落している ko/mkdocs.yml を更新。PR #5020 by @dalinaum.

内部

  • ⬆ dawidd6/action-download-artifact を 2.21.1 から 2.22.0 に更新。PR #5258 by @dependabot[bot].
  • ⬆ [pre-commit.ci] pre-commit autoupdate。PR #5196 by @pre-commit-ci[bot].
  • 🔥 tests/test_tutorial/test_sql_databases/test_sql_databases.py の重複したテストを削除。PR #5040 by @raccoonyy.
  • fastapi/utils.py の内部の正規表現を簡略化。PR #5057 by @pylounge.
  • 🔧 auto_error の型ヒントを修正、Optional[bool] である必要はない。PR #4933 by @DavidKimDY.
  • 🔧 mypy 設定を更新、手動設定の代わりに strict = true を使用。PR #4605 by @michaeloliverx.
  • fastapi/utils.pydict(){} に変更。PR #3138 by @ShahriyarR.
  • ♻ 関連コードを近づけるために、jsonable_encoder のエラーの内部変数を移動。PR #4560 by @GuilleQP.
  • fastapi/dependencies/utils.py の条件付き代入を簡略化。PR #4597 by @cikay.
  • ⬆ 内部コードの Flake8 に受け入れられるバージョンピンを flake8 >=3.8.3,<6.0.0 にアップグレード。PR #4097 by @jamescurtin.
  • 🍱 Jinaバナーを更新、タイプミスを修正。PR #5301 by @tiangolo.

0.80.0

破壊的な変更 - 修正

  • 🐛 response_modelNone を無効にしないバグを修正。PR #2725 by @hukkin.

response_modelNone を含まない型を使用しているが、関数が None を返している場合、response_model のコントラクトに違反する無効なデータを返しているため、内部サーバーエラーが発生するようになりました。このリリース以前は、None を返すことでそのコントラクトを破ることができました。

たとえば、次のようなアプリがある場合

from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: Optional[float] = None
    owner_ids: Optional[List[int]] = None

app = FastAPI()

@app.get("/items/invalidnone", response_model=Item)
def get_invalid_none():
    return None

...パス /items/invalidnone を呼び出すと、エラーが発生します。NoneItem で宣言された response_model の有効な型ではないためです。

たとえば、次のように、気づかずに暗黙的に None を返すこともあります。

from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: Optional[float] = None
    owner_ids: Optional[List[int]] = None

app = FastAPI()

@app.get("/items/invalidnone", response_model=Item)
def get_invalid_none():
    if flag:
        return {"name": "foo"}
    # if flag is False, at this point the function will implicitly return None

None を返すことを許可する必要がある response_model を使用する *パスオペレーション* がある場合は、Union[Something, None] を使用して response_model で明示的に指定してください。

from typing import Union

from fastapi import FastAPI
from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: Optional[float] = None
    owner_ids: Optional[List[int]] = None

app = FastAPI()

@app.get("/items/invalidnone", response_model=Union[Item, None])
def get_invalid_none():
    return None

これにより、データは正しく検証され、内部サーバーエラーは発生せず、ドキュメントもこの *パスオペレーション* が None(またはJSONでは null)を返す可能性があることを反映します。

修正

  • ⬆ Swagger UI の oauth2-redirect.html のコピーをアップグレードして、Swagger UI での承認コードフローのフレーバーの修正を含める。PR #3439 initial PR by @koonpeng.
  • ♻ docstrings から抽出された説明から空の空白を削除。PR #2821 by @and-semakin.
  • 🐛 異なる OAuth2 スコープを使用して、Security() およびその他の場所(例:Depends())で依存関係を使用する場合のキャッシュされた依存関係を修正。PR #2945 by @laggardkernel.
  • 🎨 response_model の型アノテーションを更新、Union[str, None] のようなものを許可。PR #5294 by @tiangolo.

翻訳

  • 🌐 docs/de/docs/features.md のドイツ語翻訳のタイプミスを修正。PR #4533 by @0xflotus.
  • 🌐 韓国語翻訳で encoder.md のナビゲーターが欠落しているのを修正。PR #5238 by @joonas-yoon.
  • (誤って空のPRがマージされました)#4913

0.79.1

修正

  • 🐛 Pydanticオブジェクト以外のオブジェクトに対して include および exclude パラメータを使用する jsonable_encoder を修正。PR #2606 by @xaviml.
  • 🐛 OpenAPI に表示されない、エイリアス名が繰り返されるエッジケースを修正。PR #2351 by @klaa97.
  • 📝 チュートリアルドキュメントにその他の依存関係のインストールを追加。PR #2126 by @TeoZosa.

ドキュメント

  • 📝 イラストのクレジットとして Ketrina Thompson への謝辞を追加しました。PR #5284 by @tiangolo
  • python-types.md のタイプミスを修正しました。PR #5116 by @Kludex
  • docs/en/docs/python-types.md のタイプミスを修正しました。PR #5007 by @atiabbz
  • 📝 非同期トピックのイントロから不要な Django/Flask の記述を削除しました。PR #5280 by @carltongibson
  • ✨ 並行バーガーと並列バーガーのイラストを追加しました。PR #5277 by @tiangolo。ドキュメントを更新しました: Concurrency and Burgers

翻訳

  • 🌐 docs/pt/docs/tutorial/query-params.md のポルトガル語訳を追加しました。PR #4775 by @batlopes
  • 🌐 docs/pt/docs/tutorial/security/first-steps.md のポルトガル語訳を追加しました。PR #4954 by @FLAIR7
  • 🌐 docs/zh/docs/advanced/response-cookies.md の翻訳を追加しました。PR #4638 by @zhangbo2012
  • 🌐 docs/fr/docs/deployment/index.md のフランス語訳を追加しました。PR #3689 by @rjNemo
  • 🌐 tutorial/handling-errors.md のポルトガル語訳を追加しました。PR #4769 by @frnsimoes
  • 🌐 docs/fr/docs/history-design-future.md のフランス語訳を追加しました。PR #3451 by @rjNemo
  • 🌐 docs/ru/docs/tutorial/background-tasks.md のロシア語訳を追加しました。PR #4854 by @AdmiralDesu
  • 🌐 docs/tutorial/security/first-steps.md の中国語訳を追加しました。PR #3841 by @jaystone776
  • 🌐 docs/ja/docs/advanced/nosql-databases.md の日本語訳を追加しました。PR #4205 by @sUeharaE4
  • 🌐 docs/id/docs/tutorial/index.md のインドネシア語訳を追加しました。PR #4705 by @bas-baskara
  • 🌐 docs/fa/docs/index.md のペルシャ語訳を追加し、右から左への CSS を調整しました。PR #2395 by @mohsen-mahmoodi

内部

  • 🔧 Jina スポンサーシップを更新しました。PR #5283 by @tiangolo
  • 🔧 Jina スポンサーシップを更新しました。PR #5272 by @tiangolo
  • 🔧 スポンサーを更新し、Striveworks のバッジを追加しました。PR #5179 by @tiangolo

0.79.0

修正 - 破壊的変更

  • 🐛 サポートされていないステータスコードから本文を削除する問題を修正しました。PR #5145 by @tiangolo
    • status_code204304、または 200 未満の任意のコード (1xx) に設定すると、レスポンスから本文が削除されます。
    • これにより、Uvicorn で発生していたエラー RuntimeError: Response content longer than Content-Length が修正されます。
    • fastapi.openapi.constants.STATUS_CODES_WITH_NO_BODY を削除し、代わりに utils 内の関数を使用します。

翻訳

  • 🌐 ヘブライ語翻訳を開始しました。PR #5050 by @itay-raveh
  • 🔧 スウェーデン語翻訳の通知設定を追加しました。PR #5147 by @tiangolo
  • 🌐 スウェーデン語翻訳を開始しました。PR #5062 by @MrRawbin
  • 🌐 docs/ja/docs/advanced/index.md の日本語訳を追加しました。PR #5043 by @wakabame
  • 🌐🇵🇱 docs/pl/docs/tutorial/first-steps.md のポーランド語訳を追加しました。PR #5024 by @Valaraucoo

内部

  • 🔧 ヘブライ語翻訳の通知を更新しました。PR #5158 by @tiangolo
  • 🔧 Dependabot のコミットメッセージを更新しました。PR #5156 by @tiangolo
  • ⬆ actions/upload-artifact を 2 から 3 にアップグレードしました。PR #5148 by @dependabot[bot]
  • ⬆ actions/cache を 2 から 3 にアップグレードしました。PR #5149 by @dependabot[bot]
  • 🔧 スポンサーバッジの設定を更新しました。PR #5155 by @tiangolo
  • 👥 FastAPI のメンバーを更新しました。PR #5154 by @tiangolo
  • 🔧 Jina スポンサーバッジを更新しました。PR #5151 by @tiangolo
  • ⬆ actions/checkout を 2 から 3 にアップグレードしました。PR #5133 by @dependabot[bot]
  • ⬆ [pre-commit.ci] pre-commit の自動アップデートを実行しました。PR #5030 by @pre-commit-ci[bot]
  • ⬆ nwtgck/actions-netlify を 1.1.5 から 1.2.3 にアップグレードしました。PR #5132 by @dependabot[bot]
  • ⬆ codecov/codecov-action を 2 から 3 にアップグレードしました。PR #5131 by @dependabot[bot]
  • ⬆ dawidd6/action-download-artifact を 2.9.0 から 2.21.1 にアップグレードしました。PR #5130 by @dependabot[bot]
  • ⬆ actions/setup-python を 2 から 4 にアップグレードしました。PR #5129 by @dependabot[bot]
  • 👷 Dependabot を追加しました。PR #5128 by @tiangolo
  • ♻️ 内部ユーティリティで Optional[X] から Union[X, None] に移行しました。PR #5124 by @tiangolo
  • 🔧 スポンサーを更新し、Dropbase を削除し、Doist を追加しました。PR #5096 by @tiangolo
  • 🔧 スポンサーを更新し、Classiq を削除し、ImgWhale を追加しました。PR #5079 by @tiangolo

0.78.0

機能

  • ✨ 必須パラメータを宣言する際に、デフォルト値として ... を省略するサポートを追加しました。

  • Path()

  • Query()
  • Header()
  • Cookie()
  • Body()
  • Form()
  • File()

新しいドキュメント: チュートリアル - クエリパラメータと文字列の検証 - 必須にする。PR #4906 by @tiangolo

これまで、追加の検証やメタデータを追加しながら必須パラメータを宣言するには、... (Ellipsis) を使用する必要がありました。

例:

from fastapi import Cookie, FastAPI, Header, Path, Query

app = FastAPI()


@app.get("/items/{item_id}")
def main(
    item_id: int = Path(default=..., gt=0),
    query: str = Query(default=..., max_length=10),
    session: str = Cookie(default=..., min_length=3),
    x_trace: str = Header(default=..., title="Tracing header"),
):
    return {"message": "Hello World"}

...これらのパラメータはすべて、デフォルト値が ... (Ellipsis) であるため必須です。

しかし、Pydantic のフィールドと同様にデフォルト値を省略することも可能になり、パラメータは引き続き必須となります。

✨ たとえば、以下がサポートされるようになりました

from fastapi import Cookie, FastAPI, Header, Path, Query

app = FastAPI()


@app.get("/items/{item_id}")
def main(
    item_id: int = Path(gt=0),
    query: str = Query(max_length=10),
    session: str = Cookie(min_length=3),
    x_trace: str = Header(title="Tracing header"),
):
    return {"message": "Hello World"}

パラメータをオプション (必須ではない) として宣言するには、常にデフォルト値を設定できます。たとえば、None を使用します。

from typing import Union
from fastapi import Cookie, FastAPI, Header, Path, Query

app = FastAPI()


@app.get("/items/{item_id}")
def main(
    item_id: int = Path(gt=0),
    query: Union[str, None] = Query(default=None, max_length=10),
    session: Union[str, None] = Cookie(default=None, min_length=3),
    x_trace: Union[str, None] = Header(default=None, title="Tracing header"),
):
    return {"message": "Hello World"}

ドキュメント

  • 📝 Optional よりも Union を推奨し、ソース例を移行するドキュメントを追加しました。新しいドキュメント: Python 型入門 - Union または Optional の使用。PR #4908 by @tiangolo
  • 🎨 パス操作の高度な設定のチュートリアルで設定されているデフォルト値を修正しました。PR #4899 by @tiangolo
  • 📝 再定義されたパス操作に関するドキュメントを追加しました。PR #4864 by @madkinsz
  • 📝 Celery ドキュメントへのリンクを更新しました。PR #4736 by @sammyzord
  • ✏ ボディネストモデルのチュートリアルのセットを使用したコード例を修正しました。PR #3030 by @hitrust
  • ✏ Pydantic ドキュメントへのリンクを修正しました。PR #4670 by @kinuax
  • 📝 より新しいソースリンクで Swagger UI のセルフホスティングに関するドキュメントを更新しました。PR #4813 by @Kastakin
  • 📝 外部記事へのリンクを追加しました: Building the Poll App From Django Tutorial With FastAPI And React. PR #4778 by @jbrocher
  • 📝 追加のスキーマ拡張を含む "ボディ - フィールド" ドキュメントに OpenAPI の警告を追加しました。PR #4846 by @ml-evs

翻訳

  • 🌐 docs/ja/docs/tutorial/testing.md の日本語訳のコード例を修正しました。PR #4623 by @hirotoKirimaru

内部

  • ♻️ キーの検索を最小限に抑えるために、辞書の値の抽出をリファクタリングしました (fastapi/utils.py)。PR #3139 by @ShahriyarR
  • ✅ 必須の非可能パラメータとボディフィールドのテストを追加しました。PR #4907 by @tiangolo
  • 👷 CI で Material for MkDocs Insiders のインストールを修正しました。PR #4897 by @tiangolo
  • 👷 カスタム GitHub アクションの代わりに pre-commit CI を追加しました。PR #4896 by @tiangolo
  • 👷 pre-commit GitHub アクションワークフローを追加しました。PR #4895 by @tiangolo
  • 📝 OS の設定に基づいてドキュメントにダークモードの自動切り替えを追加しました。PR #4869 by @ComicShrimp
  • 🔥 他の場所で既にカバーされている、未使用の古い保留中のテストを削除しました。PR #4891 by @tiangolo
  • 🔧 Python フォーマットフックを pre-commit に追加しました。PR #4890 by @tiangolo
  • 🔧 最初の設定と最初のフォーマットパスで pre-commit を追加しました。PR #4888 by @tiangolo
  • 👷 フォークでの Material for MkDocs のインストールを CI で無効化。PR #4410 by @dolfinus

0.77.1

アップグレード

  • ⬆ Starlette を 0.19.0 から 0.19.1 にアップグレード。PR #4819 by @Kludex

ドキュメント

  • 📝 ドイツ語の記事へのリンクを追加:REST-API Programmieren mittels Python und dem FastAPI Modul。PR #4624 by @fschuermeyer
  • 📝 外部リンクを追加:PyCharm Guide to FastAPI。PR #4512 by @mukulmantosh
  • 📝 外部リンクを追加:Building an API with FastAPI and Supabase and Deploying on Deta。PR #4440 by @aUnicornDev
  • docs/en/docs/tutorial/security/first-steps.md の小さなタイプミスを修正。PR #4515 by @KikoIlievski

翻訳

  • 🌐 docs/pl/docs/tutorial/index.md にポーランド語翻訳を追加。PR #4516 by @MKaczkow
  • ✏ デプロイメントのタイプミスを修正。PR #4629 by @raisulislam541
  • 🌐 docs/pt/docs/help-fastapi.md にポルトガル語翻訳を追加。PR #4583 by @mateusjs

内部

  • 🔧 ウズベク語翻訳に関する issue に通知を追加。PR #4884 by @tiangolo

0.77.0

アップグレード

  • ⬆ Starlette を 0.18.0 から 0.19.0 にアップグレード。PR #4488 by @Kludex
    • 明示的な JSONResponse を作成する場合、content 引数が必須になりました。

ドキュメント

  • 📝 外部リンクを追加:Seamless FastAPI Configuration with ConfZ。PR #4414 by @silvanmelchior
  • 📝 外部リンクを追加:5 Advanced Features of FastAPI You Should Try。PR #4436 by @kaustubhgupta
  • TestClient に関するドキュメントの可読性を向上させるために言い換え。PR #4389 by @rgilton
  • 📝 Kafka, FastAPI, and Ably に関するブログ記事への外部リンクを追加。PR #4044 by @Ugbot
  • docs/en/docs/tutorial/sql-databases.md のタイプミスを修正。PR #4875 by @wpyoga
  • docs/en/docs/async.md のタイプミスを修正。PR #4726 by @Prezu

翻訳

  • 🌐 docs/zh/docs/tutorial/query-params-str-validations.md のソース例のハイライトを更新。PR #4237 by @caimaoy
  • 🌐 AnyIO 以降不要になったため、aiofiles への翻訳ドキュメントの参照を削除。PR #3594 by @alonme
  • ✏ 🌐 docs/pt/docs/tutorial/path-params.md のポルトガル語翻訳のタイプミスを修正。PR #4722 by @CleoMenezesJr
  • 🌐 一部の言語の翻訳でライブドキュメントサーバーを修正。PR #4729 by @wakabame
  • 🌐 docs/pt/docs/tutorial/cookie-params.md にポルトガル語翻訳を追加。PR #4112 by @lbmendes
  • 🌐 docs/tutorial/body.md のフランス語翻訳を修正。PR #4332 by @Smlep
  • 🌐 docs/ja/docs/advanced/conditional-openapi.md に日本語翻訳を追加。PR #2631 by @sh0nk
  • 🌐 docs/ja/docs/tutorial/body.md の日本語翻訳を修正。PR #3062 by @a-takahashi223
  • 🌐 docs/pt/docs/tutorial/background-tasks.md にポルトガル語翻訳を追加。PR #2170 by @izaguerreiro
  • 🌐 docs/deployment/deta.md にポルトガル語翻訳を追加。PR #4442 by @lsglucas
  • 🌐 docs/async.md にロシア語翻訳を追加。PR #4036 by @Winand
  • 🌐 docs/tutorial/body.md にポルトガル語翻訳を追加。PR #3960 by @leandrodesouzadev
  • 🌐 tutorial/extra-data-types.md のポルトガル語翻訳を追加。PR #4077 by @luccasmmg
  • 🌐 docs/features.md のドイツ語翻訳を更新。PR #3905 by @jomue

0.76.0

アップグレード

  • ⬆ Starlette を 0.17.1 から 0.18.0 にアップグレード。PR #4483 by @Kludex

内部

  • 👥 FastAPI の人々を更新。PR #4847 by @github-actions[bot]
  • 🔧 Budget Insight スポンサーを追加。PR #4824 by @tiangolo
  • 🍱 スポンサー、ExoFlare バッジを更新。PR #4822 by @tiangolo
  • 🔧 スポンサーを更新、Dropbase を再度有効化、TalkPython のリンクを更新。PR #4821 by @tiangolo

0.75.2

このリリースには、セキュリティ問題を処理するサードパーティパッケージのアップグレードが含まれています。これらの問題が特に影響しない可能性もありますが、できるだけ早くアップグレードしてください。

修正

  • ✅ 新しい/最近のテストを、新しく修正された ValidationError JSON スキーマで修正。PR #4806 by @tiangolo
  • 🐛 フィールド locValidationError の JSON スキーマを修正。PR #3810 by @dconathan
  • 🐛 APIRouter WebSockets でのプレフィックスのサポートを修正。PR #2640 by @Kludex

アップグレード

  • ⬆️ CVE-2021-45958 の ujson 範囲を更新。PR #4804 by @tiangolo
  • ⬆️ エクストラ "all" の依存関係の上限範囲をアップグレード。PR #4803 by @tiangolo
  • ⬆ Swagger UI - swagger-ui-dist@4 をアップグレード。これにより、Swagger UI 自体に HTML を挿入できる可能性があったセキュリティ問題が処理されます。特に Swagger UI (/docs) を専門家ではないユーザーに公開している場合は、できるだけ早くアップグレードしてください。PR #4347 by @RAlanWright

内部

  • 🔧 スポンサーを更新、追加: ExoFlare, Ines Course; 削除: Dropbase, Vim.so, Calmcode; 更新: Striveworks, TalkPython, TestDriven.io。PR #4805 by @tiangolo
  • ⬆️ Codecov GitHub Action をアップグレード。PR #4801 by @tiangolo

0.75.1

翻訳

内部

  • 👥 FastAPI の人々を更新。PR #4752 by @github-actions[bot]
  • ➖ Pydantic CI をブロック解除するため、typer-cli を依存関係から一時的に削除し、Black をアップグレード。PR #4754 by @tiangolo
  • 🔧 オランダ語翻訳を通知する構成を追加。PR #4702 by @tiangolo
  • 👥 FastAPI の人々を更新。PR #4699 by @github-actions[bot]
  • 🐛 コミットに欠落しているファイルを含めるように FastAPI の人々の生成を修正。PR #4695 by @tiangolo
  • 🔧 Classiq スポンサーリンクを更新。PR #4688 by @tiangolo
  • 🔧 Classiq スポンサーを追加。PR #4671 by @tiangolo
  • 📝 簡単な質問をしたい人のために、Jina の QA ボットをドキュメントに追加。PR #4655 by @tiangolo (元の PR #4626 by @hanxiao に基づく)。

0.75.0

機能

0.74.1

機能

  • ✨ ミドルウェアやその他のツールが情報を抽出できるように、スコープにルートを含める。PR #4603 by @tiangolo

0.74.0

破壊的な変更

  • yield を使用した依存関係のコンテキストを修正するために、内部 AsyncExitStack を更新。PR #4575 by @tiangolo

yield を使用した依存関係は、HTTPException およびカスタム例外をキャッチできるようになりました。例:

async def get_database():
    with Session() as session:
        try:
            yield session
        except HTTPException:
            session.rollback()
            raise
        finally:
            session.close()

yield を使用した依存関係が例外を処理した(またはしなかった)後、例外は再度発生します。そのため、例外ハンドラーがキャッチするか、最終的にデフォルトの内部 ServerErrorMiddleware がキャッチします。

yield を使用した依存関係で例外を受信せず、yield の後のコードで例外を受信するとコードが破損する場合は、try および finally を使用したブロックを使用できます。

async def do_something():
    try:
        yield something
    finally:
        some_cleanup()

...そうすることで、finally ブロックは、発生する可能性のある例外に関係なく実行されます。

機能

  • 上記の同じ PR #4575 では、yield の前後のコードの contextvars コンテキストも修正されています。これがその PR の主な目的でした。

これは、yield の前にコンテキスト変数に値を設定した場合、yield の後でも(直感的に期待するように)値が使用可能になることを意味します。また、後でトークンを使用してコンテキスト変数をリセットできることも意味します。

たとえば、これは現在正しく動作します

from contextvars import ContextVar
from typing import Any, Dict, Optional


legacy_request_state_context_var: ContextVar[Optional[Dict[str, Any]]] = ContextVar(
    "legacy_request_state_context_var", default=None
)

async def set_up_request_state_dependency():
    request_state = {"user": "deadpond"}
    contextvar_token = legacy_request_state_context_var.set(request_state)
    yield request_state
    legacy_request_state_context_var.reset(contextvar_token)

...この変更前は、contextvarsのコンテキストが実装方法の違いにより異なっていたため、コンテキスト変数をリセットする際にエラーが発生していました。

注意: おそらくcontextvarsは必要なく、使用は避けるべきでしょう。しかし、これは強力であり、いくつかの高度なシナリオで役立ちます。たとえば、Flaskのgのような準グローバル変数を使用していたコードからの移行などです。

技術詳細: 技術的な詳細についてもっと知りたい場合は、PRの説明#4575をご確認ください。

内部

  • 🔧 Striveworksのスポンサーを追加。PR #4596 by @tiangolo
  • 💚 PRからの重複実行を避けるため、masterブランチへのプッシュ時のみドキュメントをビルドするように変更。PR #4564 by @tiangolo
  • 👥 FastAPIのメンバーを更新。PR #4502 by @github-actions[bot]

0.73.0

機能

ドキュメント

  • 📝 リクエストファイルに関するドキュメントを調整および改善。PR #4470 by @tiangolo

修正

  • 🐛 タプルを使用した場合にOpenAPIが使用できなくなるバグを修正。PR #3874 by @victorbenichoux
  • 🐛 jsonable_encoderでカスタムエンコーダーが指定されている場合は、デフォルトよりもカスタムエンコーダーを優先。PR #2061 by @viveksunder
    • 💚 CIをトリガーするためのPRの重複。PR #4467 by @tiangolo

内部

  • 🐛 MkDocsの最新版Materialを取得するためのドキュメント依存関係キャッシュを修正。PR #4466 by @tiangolo
  • 🔧 スポンサーDropbaseを追加。PR #4465 by @tiangolo

0.72.0

機能

ドキュメント

  • 📝 Python Typesのドキュメントを更新し、3.6 / 3.9の例を追加。PR #4434 by @tiangolo

翻訳

  • 🌐 docs/help-fastapi.mdの中国語翻訳を更新。PR #3847 by @jaystone776
  • 🌐 docs/ko/docs/index.mdの韓国語翻訳を修正。PR #4195 by @kty4119
  • 🌐 docs/pl/docs/index.mdのポーランド語翻訳を追加。PR #4245 by @MicroPanda123
  • 🌐 docs\tutorial\path-operation-configuration.mdの中国語翻訳を追加。PR #3312 by @jaystone776

内部

  • 🔧 MkDocs Material Insidersのcontent.tabs.linkを有効化。PR #4399 by @tiangolo

0.71.0

機能

  • ✨ Python 3.9およびPython 3.10のドキュメントとテストを追加。PR #3712 by @tiangolo
    • Python Typesの入門から始めることができます。ここでは、Python 3.9およびPython 3.10における、異なるPythonバージョン間の変更点が説明されています。
    • すべてのFastAPIドキュメントが更新されました。ドキュメント内のコード例で、Python 3.9またはPython 3.10で異なる構文を使用できるものは、すべてタブで代替案が表示されるようになりました。
  • ⬆️ Starletteを0.17.1にアップグレード。PR #4145 by @simondale00

内部

  • 👥 FastAPIのメンバーを更新。PR #4354 by @github-actions[bot]
  • 🔧 PyPI用のFastAPI Trove Classifierを追加(なぜか必要になった😁)。PR #4386 by @tiangolo
  • ⬆ MkDocs Materialと設定をアップグレード。PR #4385 by @tiangolo

0.70.1

この特定のFastAPIリリースには特に興味深いものは何もありません。これは主に、機能と改善が満載されたPydanticの次のバージョンのリリースを有効化/ブロック解除するためのものです。🤩

修正

  • 🐛 Pydantic 1.9の修正をサポートするdataclassのJSON Schemaを修正。PR #4272 by @PrettyWood

翻訳

  • 🌐 docs/tutorial/request-forms-and-files.mdの韓国語翻訳を追加。PR #3744 by @NinaHwang
  • 🌐 docs/tutorial/request-files.mdの韓国語翻訳を追加。PR #3743 by @NinaHwang
  • 🌐 docs/tutorial/query-params-str-validations.mdのポルトガル語翻訳を追加。PR #3965 by @leandrodesouzadev
  • 🌐 docs/tutorial/response-status-code.mdの韓国語翻訳を追加。PR #3742 by @NinaHwang
  • 🌐 チュートリアル - JSON互換エンコーダーの韓国語翻訳を追加。PR #3152 by @NEONKID
  • 🌐 チュートリアル - パスパラメータと数値検証の韓国語翻訳を追加。PR #2432 by @hard-coders
  • 🌐 docs/ko/docs/deployment/versions.mdの韓国語翻訳を追加。PR #4121 by @DevDae
  • 🌐 docs/ko/docs/tutorial/index.mdの韓国語翻訳を修正。PR #4193 by @kimjaeyoonn
  • 🔧 CryptAPIのスポンサーを追加。PR #4264 by @tiangolo
  • 📝 docs/tutorial/dependencies/classes-as-dependenciesを更新: Classes as dependenciesの説明にクエリパラメータの型を追加。PR #4015 by @0417taehyun
  • 🌐 チュートリアル - 最初のステップのフランス語翻訳を追加。PR #3455 by @Smlep
  • 🌐 docs/tutorial/path-params.mdのフランス語翻訳を追加。PR #3548 by @Smlep
  • 🌐 docs/tutorial/query-params.mdのフランス語翻訳を追加。PR #3556 by @Smlep
  • 🌐 docs/python-types.mdのトルコ語翻訳を追加。PR #3926 by @BilalAlpaslan

内部

0.70.0

このリリースでは、Starletteを最新バージョン0.16.0にアップグレードするだけです。これにはいくつかのバグ修正といくつかの小さな破壊的な変更が含まれています。

これら直近の3つの連続リリースは独立しているため、段階的に移行できます。

  • まず、FastAPI 0.68.2に移行します。破壊的な変更はありませんが、すべてのサブ依存関係がアップグレードされます。
  • 次に、FastAPI 0.69.0に移行します。これは、AnyIOをサポートするStarletteを0.15.0にアップグレードし、コードに破壊的な変更が発生する可能性が高まります。
  • 最後に、FastAPI 0.70.0に移行します。これは、Starletteを最新バージョン0.16.0にアップグレードし、追加のバグ修正が含まれています。

このようにすることで、いずれかのリリースでコードに破壊的な変更があった場合でも、以前のアップグレードの恩恵を受けることができます。✨

破壊的な変更 - アップグレード

  • ⬆️ Starletteを0.16.0にアップグレード。PR #4016 by @tiangolo

また、オプションの依存関係の範囲をアップグレードします。

  • "jinja2 >=2.11.2,<4.0.0"
  • "itsdangerous >=1.1.0,<3.0.0"

0.69.0

破壊的な変更 - アップグレード

このリリースでは、Trioのサポートが追加されました。✨

Starletteのバージョンを0.15.0にアップグレードし、AnyIOに基づいたものになりました。また、FastAPI内部の非同期コンポーネントもAnyIOに基づいたものになり、asyncioTrioの両方と互換性を持つようになりました。

Hypercornを使用したTrioでのFastAPIの実行に関するドキュメントを読むことができます。

このリリースでは、GraphQLのオプションの依存関係としてgrapheneも削除されています。GraphQLを操作する必要がある場合、推奨されるライブラリはStrawberryになりました。新しいGraphQLに関するFastAPIのドキュメントを参照してください。

機能

  • ✨ AnyIO経由でTrioのサポートを追加し、Starletteを0.15.0にアップグレードしました。PR #3372 by @graingert.
  • ➖ オプションの依存関係としてgrapheneを削除しました。PR #4007 by @tiangolo.

ドキュメント

  • 📝 HypercornでTrioを使用するためのドキュメントを追加しました。PR #4014 by @tiangolo.
  • ✏️ デプロイメントガイドのタイプミスを修正しました。PR #3975 by @ghandic.
  • 📝 extrasをブラケット付きで使用する場合のpip install呼び出しでドキュメントを更新し、Zshとの互換性のために引用符を使用します。PR #3131 by @tomwei7.
  • 📝 外部記事へのリンクを追加しました:FastAPIとHerokuを使用したMLモデルのAPIとしてのデプロイ。PR #3904 by @kaustubhgupta.
  • ✏️ docs/en/docs/contributing.md のファイルパスのタイプミスを修正しました。PR #3752 by @NinaHwang.
  • ✏️ docs/en/docs/advanced/path-operation-advanced-configuration.md および docs/en/docs/release-notes.md のタイプミスを修正しました。PR #3750 by @saintmalik.
  • ✏️ セキュリティチュートリアルに不足しているカンマを追加しました。PR #3564 by @jalvaradosegura.
  • ✏️ docs/en/docs/help-fastapi.md のタイプミスを修正しました。PR #3760 by @jaystone776.
  • ✏️ docs/en/docs/tutorial/bigger-applications.md のファイルパスに関するタイプミスを修正しました。PR #3285 by @HolyDorus.
  • ✏️ docs/en/docs/tutorial/testing.md のテストクライアントを明確にするために言い換えました。PR #3382 by @Bharat123rox.
  • 📝 不正な強調表示されたコードを修正しました。PR #3325 by @paxcodes.
  • 📝 外部記事へのリンクを追加しました:FastAPIアプリをHerokuにデプロイする方法。PR #3241 by @Jarmos-san.
  • ✏️ docs/en/docs/advanced/templates.md のタイプミス(誤訳)を修正しました。PR #3211 by @oerpli.
  • 📝 docs/en/docs/tutorial/request-files.md のSwagger UIで(現在サポートされている)機能に関する注釈を削除しました。PR #2803 by @gsganden.
  • ✏️ docs/tutorial/handling-errors.md のタイプミスを修正しました。PR #2700 by @graue70.

翻訳

  • 🌐 アゼルバイジャン語の翻訳を初期化しました。PR #3941 by @madatbay.
  • 🌐 docs/fastapi-people.md のトルコ語翻訳を追加しました。PR #3848 by @BilalAlpaslan.

内部

  • 📝 サポートされているPythonバージョンのバッジを追加しました。PR #2794 by @hramezani.
  • ✏️ docs/ja/docs/deployment/docker.md の日本語ドキュメントのリンクを修正しました。PR #3245 by @utamori.
  • 🔧 pytest設定でDeprecationWarningの設定とコメントを修正しました。PR #4008 by @graingert.
  • 🔧 ライト/ダークテーマのボタンアイコンを交換しました。PR #3246 by @eddsalkield.
  • 🔧 Python 3.7以上でのみLintを実行するようにしました。PR #4006 by @tiangolo.
  • 🔧 アゼルバイジャン語のGitHub Action notify-translations設定を追加しました。PR #3995 by @tiangolo.

0.68.2

このリリースには破壊的な変更はありません。🎉

FastAPIを使用するアプリケーションが簡単にアップグレードできるように、サブ依存関係のバージョン範囲をアップグレードします。

近日中に、最近の改善点を活用するためにStarletteをアップグレードする新しいFastAPIリリースがありますが、それには破壊的な変更が発生する可能性が高いため、別のリリースになります。

機能

  • ⬆️ 警告を抑制するために、aiofilesのサポートバージョンを上げました。PR #2899 by @SnkSynthesis.
  • ➖ Python >= 3.7でbackportsを必要としないようにしました。PR #1880 by @FFY00.
  • ⬆️ Pydanticで使用されるtyping.Dequeに必要な、必要なPythonバージョンを>= 3.6.1にアップグレードしました。PR #2733 by @hukkin.
  • ⬆️ Uvicornの最大範囲を0.15.0にバンプしました。PR #3345 by @Kludex.

ドキュメント

  • 📝 GraphQLドキュメントを更新し、Strawberryを推奨しました。PR #3981 by @tiangolo.
  • 📝 デプロイメントガイドを再記述および拡張しました:コンセプト、Uvicorn、Gunicorn、Docker、コンテナ、Kubernetes。PR #3974 by @tiangolo.
  • 📝 より多くの説明と図を含むHTTPSガイドをアップグレードしました。PR #3950 by @tiangolo.

翻訳

  • 🌐 docs/features.md のトルコ語翻訳を追加しました。PR #1950 by @ycd.
  • 🌐 docs/benchmarks.md のトルコ語翻訳を追加しました。PR #2729 by @Telomeraz.
  • 🌐 docs/index.md のトルコ語翻訳を追加しました。PR #1908 by @ycd.
  • 🌐 docs/tutorial/body.md のフランス語翻訳を追加しました。PR #3671 by @Smlep.
  • 🌐 deployment/docker.md のフランス語翻訳を追加しました。PR #3694 by @rjNemo.
  • 🌐 docs/tutorial/path-params.md のポルトガル語翻訳を追加しました。PR #3664 by @FelipeSilva93.
  • 🌐 docs/deployment/https.md のポルトガル語翻訳を追加しました。PR #3754 by @lsglucas.
  • 🌐 docs/features.md のドイツ語翻訳を追加しました。PR #3699 by @mawassk.

内部

  • ✨ GitHub Action:競合状態を回避するためのnotify-translationsを更新しました。PR #3989 by @tiangolo.
  • ⬆️ 開発版autoflakeをアップグレードし、複数行のインポートをサポートしました。PR #3988 by @tiangolo.
  • ⬆️ テストおよびドキュメントの依存関係の範囲を拡大しました:pytest-cov、pytest-asyncio、black、httpx、sqlalchemy、databases、mkdocs-markdownextradata-plugin。PR #3987 by @tiangolo.
  • 👥 FastAPIの貢献者を更新しました。PR #3986 by @github-actions[bot].
  • 💚 READMEとメインページのバッジを修正しました。PR #3979 by @ghandic.
  • ⬆️ 内部テストの依存関係をアップグレードしました:mypyをバージョン0.910にし、新しく必要なタイプパッケージを追加しました。PR #3350 by @ArcLightSlavik.
  • ✨ Deepsetスポンサーシップを追加しました。PR #3976 by @tiangolo.
  • 🎨 シェルアニメーションのCSSスタイルを調整しました。PR #3888 by @tiangolo.
  • 🔧 新しいスポンサーCalmcode.ioを追加しました。PR #3777 by @tiangolo.

0.68.1

  • SQLModelのリレーションシップ属性をサポートするために、read_with_orm_modeのサポートを追加しました。PR #3757 by @tiangolo.

翻訳

  • 🌐 docs/fastapi-people.md のポルトガル語翻訳を追加しました。PR #3461 by @ComicShrimp.
  • 🌐 docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md の中国語翻訳を追加しました。PR #3492 by @jaystone776.
  • 🔧 ドイツ語とインドネシア語の新しい翻訳追跡問題を追加しました。PR #3718 by @tiangolo.
  • 🌐 docs/tutorial/dependencies/sub-dependencies.md の中国語翻訳を追加しました。PR #3491 by @jaystone776.
  • 🌐 docs/advanced/index.md のポルトガル語翻訳を追加しました。PR #3460 by @ComicShrimp.
  • 🌐 docs/async.md のポルトガル語翻訳。PR #1330 by @Serrones.
  • 🌐 docs/async.md のフランス語翻訳を追加しました。PR #3416 by @Smlep.

内部

  • ✨ GitHub Action:Notify Translationsを追加しました。PR #3715 by @tiangolo.
  • ✨ FastAPIの貢献者とスポンサーの計算を更新しました。PR #3714 by @tiangolo.
  • ✨ 最近のMaterial for MkDocs Insidersの機能を有効にしました。PR #3710 by @tiangolo.
  • 🔥 機能に関するドキュメントの例から余分なインポートを削除/クリーンアップしました。PR #3709 by @tiangolo.
  • ➕ ドキュメントライブラリを更新して、Markdownにソースを含めるようにしました。PR #3648 by @tiangolo.
  • ⬆ Python 3.9のテストを有効にしました。PR #2298 by @Kludex.
  • 👥 FastAPIの貢献者を更新しました。PR #3642 by @github-actions[bot].

0.68.0

機能

  • ✨ 各パス操作におけるOpenAPIスキーマへの拡張機能とアップデートのサポートを追加しました。新しいドキュメント:FastAPI パス操作の詳細設定 - OpenAPI エクストラ。初期PR #1922 by @edouardlp
  • ✨ 自動APIドキュメントUIに表示される、FastAPIクラスに追加のOpenAPIメタデータパラメータを追加しました。新しいドキュメント:メタデータとドキュメントURL。初期PR #1812 by @dkreeft
  • ✨ すべてのセキュリティスキームクラスにdescriptionパラメータを追加しました。例:APIKeyQuery(name="key", description="A very cool API key")。PR #1757 by @hylkepostma
  • ✨ 再帰的なモデルと拡張機能をサポートするOpenAPIモデルを更新しました。PR #3628 by @tiangolo
  • ✨ リクエストプロパティで使用されるStarletteのデータ構造を、fastapi.datastructuresにインポートおよび再エクスポートします。初期PR #1872 by @jamescurtin

ドキュメント

  • 📝 よりジェンダーニュートラルな言葉を使用して、asyncとresponse-modelに関するドキュメントを更新しました。PR #1869 by @Edward-Knight

翻訳

  • 🌐 docs/python-types.mdのロシア語翻訳を追加しました。PR #3039 by @dukkee
  • 🌐 docs/tutorial/dependencies/index.mdの中国語翻訳を追加しました。PR #3489 by @jaystone776
  • 🌐 docs/external-links.mdのロシア語翻訳を追加しました。PR #3036 by @dukkee
  • 🌐 docs/tutorial/dependencies/global-dependencies.mdの中国語翻訳を追加しました。PR #3493 by @jaystone776
  • 🌐 docs/deployment/versions.mdのポルトガル語翻訳を追加しました。PR #3618 by @lsglucas
  • 🌐 docs/tutorial/security/oauth2-jwt.mdの日本語翻訳を追加しました。PR #3526 by @sattosan

内部

  • ✅ テストカバレッジにdocs_srcディレクトリを追加し、テストを更新しました。初期PR #1904 by @Kludex
  • 🔧 新しいissueのためのフォーム付きの新しいGitHubテンプレートを追加しました。PR #3612 by @tiangolo
  • 📝 公式FastAPI Twitterをドキュメントに追加:@fastapi。PR #3578 by @tiangolo

0.67.0

機能

ドキュメント

  • 📝 外部リンクを追加:FastAPIの偽の認証局を作成し、TLS証明書を生成する方法。PR #2839 by @aitoehigie
  • ✏ コードのハイライト行を修正しました:body-nested-models.md。PR #3463 by @jaystone776
  • body-nested-models.mdのスペルミスを修正しました。PR #3462 by @jaystone776
  • docs/en/docs/tutorial/schema-extra-example.mdの "might me" のスペルミスを "might be" に修正しました。PR #3362 by @dbrakman
  • 📝 外部リンクを追加:NuxtJSとFastAPIを使用したシンプルなEコマースの構築。PR #3271 by @ShahriyarR
  • 📝 外部リンクを追加:Sklearn、FastAPI、Dockerを使用した機械学習モデルの提供。PR #2974 by @rodrigo-arenas
  • ✏️ datastructuresファイルのdocstringのスペルミスを修正しました。PR #2887 by @Kludex
  • 📝 外部リンクを追加:UbuntuにFastAPIをデプロイし、Caddy 2 Web Serverを使用して提供する。PR #3572 by @tiangolo
  • 📝 外部リンクを追加、#1898を置き換えます。PR #3571 by @tiangolo

内部

  • 🎨 スポンサーのスタイルを改善し、半径の境界線を追加しました。PR #2388 by @Kludex
  • 👷 GitHub Action latest-changesを更新しました。PR #3574 by @tiangolo
  • 👷 GitHub Action latest-changesを更新しました。PR #3573 by @tiangolo
  • 👷 CIワークフローのジョブ名を変更および明確化しました。PR #3570 by @tiangolo
  • 👷 GitHub Action latest-changes、ストライク2⚾。PR #3575 by @tiangolo
  • 🔧 ドキュメント内の外部リンクをソートして、最新のものが一番上になるようにしました。PR #3568 by @tiangolo

0.66.1

翻訳

  • 🌐 ドイツ語翻訳の基本設定を追加しました。PR #3522 by @0x4Dark
  • 🌐 docs/tutorial/security/index.mdのポルトガル語翻訳を追加しました。PR #3507 by @oandersonmagalhaes
  • 🌐 docs/deployment/index.mdのポルトガル語翻訳を追加しました。PR #3337 by @lsglucas

内部

  • 🔧 厳密なpytestオプションを構成し、テストを更新/リファクタリングしました。pytestを>=6.2.4,<7.0.0に、pytest-covを>=2.12.0,<3.0.0にアップグレードしました。初期PR #2790 by @graingert
  • ⬆️ テストのためにpython-jose依存関係を>=3.3.0,<4.0.0にアップグレードしました。PR #3468 by @tiangolo

0.66.0

機能

  • response_classRedirectResponseまたはFileResponseに設定し、関数からURLを返すことを許可しました。新しいドキュメントと更新されたドキュメントは、チュートリアルセクションのカスタムレスポンス - HTML、ストリーム、ファイルなどRedirectResponseFileResponseにあります。PR #3457 by @tiangolo

修正

  • 🐛 jsonable_encoderのdictsのinclude/excludeを修正しました。PR #2016 by @Rubikoid
  • 🐛 生成されたOpenAPIでカスタムOpenAPI / JSON Schemaフィールドをサポートしました。PR #1429 by @jmagnusson

翻訳

  • 🌐 tutorial/query-params.mdのスペイン語翻訳を追加しました。PR #2243 by @mariacamilagl
  • 🌐 advanced/response-directly.mdのスペイン語翻訳を追加しました。PR #1253 by @jfunez
  • 🌐 advanced/additional-status-codes.mdのスペイン語翻訳を追加しました。PR #1252 by @jfunez
  • 🌐 advanced/path-operation-advanced-configuration.mdのスペイン語翻訳を追加しました。PR #1251 by @jfunez

0.65.3

修正

  • ♻ Content-Typeヘッダーが提供されていない場合、リクエストボディにJSONが含まれていると想定します。これは、0.65.2 with PR #2118によって導入された破壊的な変更を修正します。Content-TypeヘッダーなしでJSONデータを送信するクライアントでFastAPIアプリケーションのアップグレードを許可する必要があります。そして、CSRFに対する保護は依然として存在します。PR #3456 by @tiangolo

翻訳

  • 🌐 インドネシア語翻訳を初期化しました。PR #3014 by @pace-noge
  • 🌐 チュートリアル - パスパラメータのスペイン語翻訳を追加しました。PR #2219 by @mariacamilagl
  • 🌐 チュートリアル - 最初のステップのスペイン語翻訳を追加しました。PR #2208 by @mariacamilagl
  • 🌐 チュートリアル - ボディ - フィールドのポルトガル語翻訳。PR #3420 by @ComicShrimp
  • 🌐 チュートリアル - リクエスト - フォーム - および - ファイルの中国語翻訳を追加しました。PR #3249 by @jaystone776
  • 🌐 チュートリアル - エラー処理の中国語翻訳を追加しました。PR #3299 by @jaystone776
  • 🌐 チュートリアル - フォーム - データの中国語翻訳を追加しました。PR #3248 by @jaystone776
  • 🌐 チュートリアル - ボディ - 更新の中国語翻訳を追加しました。PR #3237 by @jaystone776
  • 🌐 FastAPI Peopleの中国語翻訳を追加しました。PR #3112 by @hareru
  • 🌐 プロジェクト生成のフランス語翻訳を追加しました。PR #3197 by @Smlep
  • 🌐 Python Types Introのフランス語翻訳を追加しました。PR #3185 by @Smlep
  • 🌐 外部リンクのフランス語翻訳を追加。PR #3103 by @Smlep.
  • 🌐 代替案、インスピレーション、比較に関するフランス語翻訳を追加。PR #3020 by @rjNemo.
  • 🌐 チュートリアル - Pythonの型入門の中国語翻訳コードスニペットの不一致を修正。PR #2573 by @BoYanZh.
  • 🌐 開発貢献に関するポルトガル語翻訳を追加。PR #1364 by @Serrones.
  • 🌐 チュートリアル - リクエスト - ファイルの中国語翻訳を追加。PR #3244 by @jaystone776.

内部

0.65.2

セキュリティ修正

  • 🔒 JSONを想定する前にContent-Typeリクエストヘッダーを確認。最初のPR #2118 by @patrickkwang.

この変更により、ブラウザから送信されたJSONペイロードを使用したパス操作で、認証にCookieを使用する際のCSRFセキュリティ脆弱性が修正されます。

0.65.2より前のバージョンでは、FastAPIは送信されたcontent-typeヘッダーがapplication/jsonまたは互換性のあるJSONメディアタイプ(例:application/geo+json)に設定されていなくても、リクエストペイロードをJSONとして読み込もうとしていました。

そのため、text/plainのcontent typeでJSONデータを含むリクエストが受け入れられ、JSONデータが抽出されていました。

しかし、text/plainのcontent typeのリクエストは、CORSプリフライトから免除され、Simple requestsと見なされます。そのため、ブラウザはCookieを含めてすぐに実行し、テキストコンテンツはFastAPIアプリケーションによって解析および受け入れられるJSON文字列である可能性があります。

詳細については、CVE-2021-32677をご覧ください。

セキュリティレポートを提供してくれたDima Bogerに感謝します!🙇🔒

内部

  • 🔧 スポンサーバッジ、コースバンドルを更新。PR #3340 by @tiangolo.
  • 🔧 新しいゴールドスポンサーJina 🎉を追加。PR #3291 by @tiangolo.
  • 🔧 FastAPIコースバンドルの新しいバナースポンサーバッジを追加。PR #3288 by @tiangolo.
  • 👷 Issue Manager GitHub Actionをアップグレード。PR #3236 by @tiangolo.

0.65.1

セキュリティ修正

0.65.0

破壊的な変更 - アップグレード

  • ⬆️ Starletteを0.14.2にアップグレード。これには、Starletteから移行された内部UJSONResponseが含まれます。これには、Starletteのいくつかのバグ修正と機能が含まれています。PR #2335 by @hanneskuettner.

翻訳

  • 🌐 翻訳用に新しい言語ポーランド語を初期化。PR #3170 by @neternefer.

内部

  • 👷 GitHub Actionキャッシュを追加して、CIインストールを高速化。PR #3204 by @tiangolo.
  • ⬆️ setup-python GitHub Actionをv2にアップグレード。PR #3203 by @tiangolo.
  • 🐛 overridesボイラープレートを使用して新しい翻訳言語を生成するためのドキュメントスクリプトを修正。PR #3202 by @tiangolo.
  • ✨ 新しいDetaバナーバッジを新しいスポンサーシップティア🙇とともに追加。PR #3194 by @tiangolo.
  • 👥 FastAPIのメンバーを更新。PR #3189 by @github-actions[bot].
  • 🔊 FastAPIのメンバーを更新して、より良いデバッグを可能にする。PR #3188 by @tiangolo.

0.64.0

機能

修正

  • 📌 SemVerを使用しないため、テスト用にSQLAlchemyの範囲を固定。PR #3001 by @tiangolo.
  • 🎨 mypyに必要な新しい型アノテーションを追加。PR #2882 by @tiangolo.
  • 🎨 内部の「type: ignore」を削除。現在は不要。PR #2424 by @AsakuraMizu.

ドキュメント

  • 📝 ロシア語の記事「FastAPI: знакомимся с фреймворком」へのリンクを追加。PR #2564 by @trkohler.
  • 📝 ブログ記事「Authenticate Your FastAPI App with Auth0」への外部リンクを追加。PR #2172 by @dompatmore.
  • 📝 記事へのリンク切れを修正:Machine learning model serving in Python using FastAPI and Streamlit。PR #2557 by @davidefiocco.
  • 📝 FastAPI Medium記事を追加:Deploy a dockerized FastAPI application to AWS。PR #2515 by @vjanz.
  • ✏ チュートリアル - エラー処理のタイプミスを修正。PR #2486 by @johnthagen.
  • ✏ Security OAuth2スコープのタイプミスを修正。PR #2407 by @jugmac00.
  • ✏ SQL(リレーショナル)データベースのドキュメントのタイプミス/明確化を修正。PR #2393 by @kangni.
  • 📝 「FastAPI for Flask Users」への外部リンクを追加。PR #2280 by @amitness.

翻訳

  • 🌐 チュートリアル - クエリパラメーターの中国語翻訳を修正し、廃止されたコンテンツを削除。PR #3051 by @louis70109.
  • 🌐 チュートリアル - バックグラウンドタスクのフランス語翻訳を追加。PR #3098 by @Smlep.
  • 🌐 docs/ko/docs/index.mdの韓国語翻訳を修正。PR #3159 by @SueNaEunYang.
  • 🌐 チュートリアル - クエリパラメーターの韓国語翻訳を追加。PR #2390 by @hard-coders.
  • 🌐 FastAPIのメンバーのフランス語翻訳を追加。PR #2232 by @JulianMaurin.
  • 🌐 チュートリアル - パスパラメーターの韓国語翻訳を追加。PR #2355 by @hard-coders.
  • 🌐 機能のフランス語翻訳を追加。PR #2157 by @Jefidev.
  • 👥 FastAPIのメンバーを更新。PR #3031 by @github-actions[bot].
  • 🌐 チュートリアル - デバッグの中国語翻訳を追加。PR #2737 by @blt232018.
  • 🌐 チュートリアル - セキュリティ - パスワード(およびハッシュ)、JWTトークンを使用したBearerによるOAuth2の中国語翻訳を追加。PR #2642 by @waynerv.
  • 🌐 チュートリアル - ヘッダーパラメーターの韓国語翻訳を追加。PR #2589 by @mode9.
  • 🌐 チュートリアル - メタデータとドキュメントURLの中国語翻訳を追加。PR #2559 by @blt232018.
  • 🌐 チュートリアル - 最初のステップの韓国語翻訳を追加。PR #2323 by @hard-coders.
  • 🌐 チュートリアル - CORS(クロスオリジンリソース共有)の中国語翻訳を追加。PR #2540 by @blt232018.
  • 🌐 チュートリアル - ミドルウェアの中国語翻訳を追加。PR #2334 by @lpdswing.
  • 🌐 チュートリアル - イントロの韓国語翻訳を追加。PR #2317 by @hard-coders.
  • 🌐 チュートリアル - より大きなアプリケーション - 複数ファイルの中国語翻訳を追加。PR #2453 by @waynerv.
  • 🌐 チュートリアル - セキュリティ - セキュリティ入門の中国語翻訳を追加。PR #2443 by @waynerv.
  • 🌐 チュートリアル - ヘッダーパラメーターの中国語翻訳を追加。PR #2412 by @maoyibo.
  • 🌐 チュートリアル - 追加のデータ型の中国語翻訳を追加。PR #2410 by @maoyibo.
  • 🌐 デプロイメント - Dockerの日本語翻訳を追加。PR #2312 by @tokusumi.
  • 🌐 デプロイメント - バージョンの日本語翻訳を追加。PR #2310 by @tokusumi.
  • 🌐 チュートリアル - Cookieパラメーターの中国語翻訳を追加。PR #2261 by @alicrazy1947.
  • 🌐 チュートリアル - 静的ファイルの日本語翻訳を追加。PR #2260 by @tokusumi.
  • 🌐 チュートリアル - テストの日本語翻訳を追加。PR #2259 by @tokusumi.
  • 🌐 チュートリアル - デバッグの日本語翻訳を追加。PR #2256 by @tokusumi.
  • 🌐 チュートリアル - ミドルウェアの日本語翻訳を追加。PR #2255 by @tokusumi.
  • 🌐 並行処理とasync / awaitの日本語翻訳を追加。PR #2058 by @tokusumi.
  • 🌐 チュートリアル - セキュリティ - パスワードとBearerを使用したシンプルなOAuth2の中国語翻訳を追加。PR #2514 by @waynerv.
  • 🌐 デプロイメント - Detaの日本語翻訳を追加。PR #2314 by @tokusumi.
  • 🌐 チュートリアル - セキュリティ - 現在のユーザーの取得の中国語翻訳を追加。PR #2474 by @waynerv.
  • 🌐 デプロイメント - 手動の日本語翻訳を追加。PR #2313 by @tokusumi.
  • 🌐 デプロイメント - はじめにの日本語訳を追加。PR #2309 by @tokusumi.
  • 🌐 FastAPI People の日本語訳を追加。PR #2254 by @tokusumi.
  • 🌐 応用 - パス操作の高度な設定の日本語訳を追加。PR #2124 by @Attsun1031.
  • 🌐 外部リンクの日本語訳を追加。PR #2070 by @tokusumi.
  • 🌐 チュートリアル - リクエストボディ - 更新の日本語訳を追加。PR #1956 by @SwftAlpc.
  • 🌐 チュートリアル - フォームデータの日本語訳を追加。PR #1943 by @SwftAlpc.
  • 🌐 チュートリアル - Cookie パラメータの日本語訳を追加。PR #1933 by @SwftAlpc.

内部

0.63.0

機能

  • ✨ 型アノテーションを改善し、mypy --strict を内部および外部パッケージでサポート。PR #2547 by @tiangolo.

破壊的な変更

  • ⬆️ fastapi[all] をインストールする際に Uvicorn を最新バージョン(uvloop を含む)にアップグレード。新しい範囲は uvicorn[standard] >=0.12.0,<0.14.0。PR #2548 by @tiangolo.

修正

  • 🐛 PR #2547(上記参照)では、callbacks パラメータと OAuth2 クラス使用時の偽陽性の mypy エラーも修正。

ドキュメント

  • 📝 Uvicorn のインストール手順を uvicorn[standard] を使うように更新(uvloop を含む)。PR #2543 by @tiangolo.
  • 📝 Deta チュートリアルのタイトルを更新。PR #2466 by @tiangolo.
  • 👥 FastAPI People を更新。PR #2454 by @github-actions[bot].

翻訳

  • 🌐 ドキュメントの言語セレクターウィジェットを追加。PR #2542 by @tiangolo.
  • 🌐 チュートリアル - レスポンスステータスコードの中国語訳を追加。PR #2442 by @waynerv.
  • 🌐 アルバニア語のドキュメント翻訳を開始。PR #2516 by @vjanz.
  • 🌐 チュートリアル - 拡張モデルの中国語訳を追加。PR #2416 by @waynerv.
  • 🌐 チュートリアル - レスポンスモデルの中国語訳を追加。PR #2414 by @waynerv.
  • 🌐 チュートリアル - スキーマの追加例の中国語訳を追加。PR #2411 by @maoyibo.
  • 🌐 Index の韓国語訳を追加。PR #2192 by @hard-coders.
  • 🌐 応用ユーザーガイド - 追加のステータスコードの日本語訳を追加。PR #2145 by @Attsun1031.

内部

  • 🐛 翻訳のためのドキュメントオーバーライドディレクトリを修正。PR #2541 by @tiangolo.
  • ➖ pip リゾルバーの競合を修正するため、ドキュメント構築の依存関係としての Typer を削除(typer-cli でカバー)。PR #2539 by @tiangolo.
  • ✨ ニュースレター:FastAPI and friends を追加。PR #2509 by @tiangolo.
  • ✨ 新しいゴールドスポンサー:InvestSuite 🎉 を追加。PR #2508 by @tiangolo.
  • 🔧 Issue テンプレート設定を追加。PR #2476 by @tiangolo.

0.62.0

機能

  • ✨ 共有/トップレベルパラメータ(依存関係、タグなど)のサポートを追加。PR #2434 by @tiangolo.

これまで、いくつかのオプションをパス操作のグループに適用する唯一の方法は、include_router でした。これはうまく機能しますが、app.include_router() または router.include_router() の呼び出しは通常、別のファイルで行われます。

つまり、たとえば、認証をルーター内のすべてのパス操作に適用するには、関連ロジックをまとめるのではなく、別のファイルで実行されることになります。

include_router でオプションを設定することは、たとえば、アプリに含まれるサードパーティルーターからの構成を上書きまたは増やす場合など、一部のケースでは依然として意味があります。しかし、より大きなアプリケーションの一部であるルーターでは、APIRouter を作成するときにこれらの設定を追加する方がおそらく理にかなっているでしょう。

FastAPI

これにより、(既にあるパラメータに加えて)(ほとんど新しい)パラメータを設定できます。

  • default_response_classAPIRouter および include_router のデフォルトを処理するように更新。
  • dependencies:アプリケーション全体に適用される ✨ トップレベル依存関係 ✨ を含めるため。例:グローバル認証を追加。
  • callbacks:すべてのパス操作に適用される OpenAPI コールバック。
  • deprecated:すべてのパス操作を非推奨としてマークするため。🤷
  • include_in_schema:OpenAPI スキーマからすべてのパス操作を除外できるようにするため。
  • responses:すべてのパス操作に適用される OpenAPI レスポンス。

例:

from fastapi import FastAPI, Depends


async def some_dependency():
    return


app = FastAPI(dependencies=[Depends(some_dependency)])

APIRouter

これにより、(既にあるパラメータに加えて)(ほとんど新しい)パラメータを設定できます。

  • default_response_classAPIRouter および include_router のデフォルトを処理するように更新。たとえば、コールバックを作成するときに明示的に設定する必要はありません。
  • dependencies:ルーター内のすべてのパス操作に適用される ✨ ルーターレベル依存関係 ✨ を含めるため。これまで、これは include_router でのみ可能でした。
  • callbacks:このルーター内のすべてのパス操作に適用される OpenAPI コールバック。
  • deprecated:ルーター内のすべてのパス操作を非推奨としてマークするため。
  • include_in_schema:OpenAPI スキーマからルーター内のすべてのパス操作を除外できるようにするため。
  • responses:ルーター内のすべてのパス操作に適用される OpenAPI レスポンス。
  • prefix:ルーターのパスプレフィックスを設定するため。これまで、これは include_router を呼び出すときにのみ可能でした。
  • tags:このルーター内のすべてのパス操作に適用される OpenAPI タグ。

例:

from fastapi import APIRouter, Depends


async def some_dependency():
    return


router = APIRouter(prefix="/users", dependencies=[Depends(some_dependency)])

include_router

これらの設定のほとんどは APIRouter でサポートされるようになり、通常は関連するコードの近くにあるため、可能な場合は APIRouter を使用することをお勧めします。

ただし、include_router は、たとえば、サードパーティルーター、または複数のプロジェクト間で共有される汎用ルーターを含めるときにオプション(dependenciesprefixtagsなど)を追加するのに依然として役立ちます。

この PR により、(既にあるパラメータに加えて)(ほとんど新しい)パラメータを設定できます。

  • default_response_classAPIRouter および FastAPI のデフォルトを処理するように更新。
  • deprecated:OpenAPI でルーター内のすべてのパス操作を非推奨としてマークするため。
  • include_in_schema:OpenAPI スキーマでのすべてのパス操作の表示を無効にできるようにするため。
  • callbacks:このルーター内のすべてのパス操作に適用される OpenAPI コールバック。

注:以前のすべてのパラメータはまだ存在するため、include_routerdependencies を宣言することもできます。

破壊的な変更

  • PR #2434 には、通常のユースケースには影響しないはずですが、高度なシナリオでは影響する可能性のあるいくつかの改善が含まれています
    • 生成された OpenAPI をテストしている場合(FastAPI はすでに広範囲にテストしているため、そうすべきではありません):include_router およびパス操作tags の順序が整合性のために更新されましたが、これは単純な順序変更です。
    • 各ルートの route.response_class、または router.default_response_class、または app.default_response_class にアクセスするための高度なカスタムロジックがある場合:APIRouteresponse_class と、APIRouter および FastAPIdefault_response_class のデフォルト値は、デフォルト値とオーバーライドを処理および解決するために内部で使用される DefaultPlaceholder になりました。DefaultPlaceholder 内の実際のレスポンスクラスは、route.response_class.value で利用できます。

ドキュメント

翻訳

  • 🌐 応用 - カスタムレスポンスの日本語訳を追加。PR #2193 by @Attsun1031.
  • 🌐 ベンチマークの中国語訳を追加。PR #2119 by @spaceack.
  • 🌐 チュートリアル - リクエストボディ - ネストされたモデルの中国語訳を追加。PR #1609 by @waynerv.
  • 🌐 高度なカスタムレスポンスの中国語翻訳を追加しました。PR #1459 by @RunningIkkyu.
  • 🌐 高度なレスポンスの直接返却の中国語翻訳を追加しました。PR #1452 by @RunningIkkyu.
  • 🌐 高度な追加ステータスコードの中国語翻訳を追加しました。PR #1451 by @RunningIkkyu.
  • 🌐 高度なパス操作の高度な設定の中国語翻訳を追加しました。PR #1447 by @RunningIkkyu.
  • 🌐 高度なユーザーガイド - はじめにの中国語翻訳を追加しました。PR #1445 by @RunningIkkyu.

内部

  • 🔧 スポンサーセクションのTestDrivenへのリンクをコースに更新しました。PR #2435 by @tiangolo.
  • 🍱 スポンサーロゴを更新しました。PR #2418 by @tiangolo.
  • 💚 フォークでMaterial for MkDocs Insidersのインストールを無効にする問題を修正しました。1回目 ⚾。PR #2340 by @tiangolo.
  • 🐛 フォークでのMaterial for MkDocs Insidersのインストール無効化を修正しました。PR #2339 by @tiangolo.
  • ✨ シルバー スポンサー WeTransfer を追加しました。PR #2338 by @tiangolo.
  • ✨ ドキュメント用にMaterial for MkDocs Insidersをセットアップして有効化しました。PR #2325 by @tiangolo.

0.61.2

修正

  • 📌 Swagger UI バージョンのピン留めを緩和しました。PR #2089 by @jmriebold.
  • 🐛 exception_handlersからのカスタム HTTPException および RequestValidationError のオーバーライドバグを修正しました。PR #1924 by @uriyyo.
  • ✏️ 依存関係ユーティリティのタイプミスを修正し、未使用の変数をクリーンアップしました。PR #1912 by @Kludex.

ドキュメント

  • ✏️ チュートリアル - パスパラメータのタイプミスを修正しました。PR #2231 by @mariacamilagl.
  • ✏ ドキュメントのスタイルエラーを修正しました。PR #2206 by @ddobrinskiy.
  • ✏ ドキュメントの大文字のタイプミスを修正しました。PR #2204 by @imba-tjd.
  • ✏ ドキュメントのタイプミスを修正しました。PR #2179 by @ammarasmro.
  • 📝 ドキュメント内のリンクをHTTPSを使用するように更新/修正しました。PR #2165 by @imba-tjd.
  • ✏ ドキュメントのタイプミスを修正し、言い回しを追加しました。PR #2159 by @nukopy.
  • 📝 チュートリアル - ユーザーガイド - パスパラメータの例のコードの一貫性を修正しました。PR #2158 by @nukopy.
  • 📝 名前が変更されたパラメータ content_type のタイプミスを修正しました。PR #2135 by @TeoZosa.
  • ✏ ドキュメントの軽微なタイプミスを修正しました。PR #2122 by @TeoZosa.
  • ✏ ドキュメントとソース例のタイプミスを修正しました。PR #2102 by @AdrianDeAnda.
  • ✏ ドキュメントのCelery URLの間違いを修正しました。PR #2100 by @CircleOnCircles.
  • 📝 Python型の入門を簡略化しました。現在サポートされているすべてのPythonバージョンに型ヒントが含まれています 🎉。PR #2085 by @ninjaaron.
  • 📝 チュートリアル - Body - ネストされたモデル3のセットを使用したサンプルコードを修正しました。PR #2054 by @hitrust.
  • 📝 チュートリアル - Body - ネストされたモデル2のセットを使用したサンプルコードを修正しました。PR #2053 by @hitrust.
  • 📝 チュートリアル - Body - ネストされたモデルのセットを使用したサンプルコードを修正しました。PR #2052 by @hitrust.
  • ✏ ベンチマークのタイプミスを修正しました。PR #1995 by @AlejoAsd.
  • 📝 CORSチュートリアルに、["*"]を使用したallow_originsとallow_credentialsに関する注意事項を追加しました。PR #1895 by @dsmurrell.
  • 📝 初のゴールドスポンサー🎉、Detaへのデプロイを追加しました。PR #2303 by @tiangolo.
  • 👥 FastAPIのメンバーを更新しました。PR #2282 by @github-actions[bot].
  • ✏️ チュートリアル - クエリパラメーターの大文字を修正しました。PR #2245 by @mariacamilagl.
  • 📝 外部リンクに記事を追加しました。PR #2247 by @tiangolo.
  • ✏ スペイン語チュートリアルのインデックスのタイプミスを修正しました。PR #2020 by @aviloncho.

翻訳

  • 🌐 高度なチュートリアル - 直接レスポンスの日本語翻訳を追加しました。PR #2191 by @Attsun1031.
  • 📝 チュートリアル - セキュリティ - 最初のステップの日本語翻訳を追加しました。PR #2153 by @komtaki.
  • 🌐 チュートリアル - クエリパラメーターと文字列検証の日本語翻訳を追加しました。PR #1901 by @SwftAlpc.
  • 🌐 外部リンクのポルトガル語翻訳を追加しました。PR #1443 by @Serrones.
  • 🌐 チュートリアル - CORSの日本語翻訳を追加しました。PR #2125 by @tokusumi.
  • 🌐 貢献の日本語翻訳を追加しました。PR #2067 by @komtaki.
  • 🌐 プロジェクト生成の日本語翻訳を追加しました。PR #2050 by @tokusumi.
  • 🌐 代替案の日本語翻訳を追加しました。PR #2043 by @Attsun1031.
  • 🌐 歴史のデザインと将来の日本語翻訳を追加しました。PR #2002 by @komtaki.
  • 🌐 ベンチマークの日本語翻訳を追加しました。PR #1992 by @komtaki.
  • 🌐 チュートリアル - ヘッダーパラメーターの日本語翻訳を追加しました。PR #1935 by @SwftAlpc.
  • 🌐 チュートリアル - 最初のステップのポルトガル語翻訳を追加しました。PR #1861 by @jessicapaz.
  • 🌐 Python型のポルトガル語翻訳を追加しました。PR #1796 by @izaguerreiro.
  • 🌐 FastAPIを支援するの日本語翻訳を追加しました。PR #1692 by @tokusumi.
  • 🌐 チュートリアル - Bodyの日本語翻訳を追加しました。PR #1683 by @tokusumi.
  • 🌐 チュートリアル - クエリパラメーターの日本語翻訳を追加しました。PR #1674 by @tokusumi.
  • 🌐 tutorial/path-params.mdの日本語翻訳を追加しました。PR #1671 by @tokusumi.
  • 🌐 tutorial/first-steps.mdの日本語翻訳を追加しました。PR #1658 by @tokusumi.
  • 🌐 tutorial/index.mdの日本語翻訳を追加しました。PR #1656 by @tokusumi.
  • 🌐 プロジェクト生成のポルトガル語翻訳を追加しました。PR #1602 by @Serrones.
  • 🌐 機能の日本語翻訳を追加しました。PR #1625 by @tokusumi.
  • 🌐 翻訳用に新しい言語である韓国語を初期化しました。PR #2018 by @hard-coders.
  • 🌐 デプロイメントのポルトガル語翻訳を追加しました。PR #1374 by @Serrones.

内部

  • 🔥 Docs Previews GitHub Actionのアップグレード後にクリーンアップしました。PR #2248 by @tiangolo.
  • 🐛 CI ドキュメントプレビューを修正し、ドキュメントを解凍しました。PR #2246 by @tiangolo.
  • ✨ フォークからのPR用のインスタントドキュメントデプロイプレビューを追加しました。PR #2244 by @tiangolo.
  • ⚡️ CIを高速化するために、サブプロセスで言語のドキュメントを並行してビルドします。PR #2242 by @tiangolo.
  • 🐛 部分的な翻訳に対するドキュメントの順序生成を修正しました。PR #2238 by @tiangolo.
  • 👥 FastAPIのメンバーを更新しました。PR #2202 by @github-actions[bot].
  • ♻️ FastAPIのメンバー GitHub Action を github-actions として PR を送信するように更新しました。PR #2201 by @tiangolo.
  • 🔧 FastAPIのメンバー GitHub Action の設定を更新し、毎月実行するようにしました。PR #2199 by @tiangolo.
  • 🐛 FastAPIのメンバー GitHub Action のDocker依存関係を修正しました。1回目 ⚾。PR #2198 by @tiangolo.
  • 🐛 FastAPIのメンバー GitHub Action のDocker依存関係を修正しました。PR #2197 by @tiangolo.
  • 🐛 変更がない場合にFastAPIのメンバー GitHub Actionを修正しました。PR #2196 by @tiangolo.
  • 👥 FastAPIの新しいセクション「FastAPI People」を追加しました。PR #2195 by @tiangolo.
  • ⬆️ GitHub Actions の最新の変更をアップグレードしました。PR #2190 by @tiangolo
  • ⬆️ GitHub Action Label Approved をアップグレードしました。PR #2189 by @tiangolo
  • 🔧 GitHub Action Label Approved を更新し、12:00 に実行するようにしました。PR #2185 by @tiangolo
  • 👷 GitHub Action Latest Changes をアップグレードしました。PR #2184 by @tiangolo
  • 👷 GitHub Action Label Approved を毎分ではなく、毎日実行するように設定しました。PR #2163 by @tiangolo
  • 🔥 pr-approvals GitHub Action はフォークと互換性がないため削除しました。新しいものを使用してください。PR #2162 by @tiangolo
  • 👷 GitHub Action Latest Changes を追加しました。PR #2160
  • 👷 GitHub Action Label Approved を追加しました。PR #2161

0.61.1

修正

  • SQLAlchemy モデルを jsonable_encoder で直接使用する際の問題を修正しました。PR #1987

ドキュメント

  • NoSQL ドキュメントのタイプミスを修正しました。PR #1980 by @facundojmaero

翻訳

内部

  • hl_lines 構文を範囲を使用するように更新することで、ドキュメントの保守性を改善しました。PR #1863 by @la-mar

0.61.0

機能

  • HTTPConnection (Request および WebSocket として) の注入のサポートを追加しました。依存関係でアプリの状態を共有するのに便利です。PR #1827 by @nsidnev
  • WebSocketDisconnect をエクスポートし、WebSocket の切断を処理する例をドキュメントに追加しました。PR #1822 by @rkbeatss

破壊的な変更

  • Pydantic > 1.0.0 が必要です。
    • 非推奨の Pydantic 0.32.2 のサポートを削除しました。これにより、保守性が向上し、新機能が可能になります。
    • FastAPI および APIRouter
      • パス操作デコレーターの関連/非推奨パラメーター response_model_skip_defaults を削除しました (代わりに response_model_exclude_unset を使用してください)。
      • パス操作デコレーターのパラメーターのデフォルト値を response_model_excludeset() から None に変更しました (Pydantic と同様)。
    • encoders.jsonable_encoder
      • 非推奨の skip_defaults を削除し、代わりに exclude_unset を使用します。
      • exclude のデフォルト値を set() から None に設定しました (Pydantic と同様)。
    • PR #1862
  • encoders.jsonable_encoder からパラメーター sqlalchemy_safe を削除しました。
    • これは、SQLAlchemy モデルの返却を可能にする初期のハックでしたが、ドキュメント化されておらず、推奨される方法は、チュートリアルで説明されているように、Pydantic の orm_mode を使用することです: SQL (リレーショナル) データベース
    • PR #1864

ドキュメント

内部

  • Flake8 リンティングを追加しました。元の PR #1774 by @MashhadiNima
  • Gitter ボットは現在壊れており、Gitter の応答に問題が表示されないため、無効にしました。PR #1853

0.60.2

  • クエリパラメータのドキュメントのタイプミスを修正しました。PR #1832 by @ycd
  • 非同期テストに関するドキュメントを追加しました。PR #1619 by @empicano
  • python-multipart がインストールされていない状態でフォームデータ (FormFile) を使用すると例外を発生させるようにしました。
    • これまで、アプリケーションは実行され、フォームデータを含むリクエストを受信した場合にのみ例外を発生させていました。新しい動作では、早期に例外を発生させることで、破損した依存関係を持つアプリケーションのデプロイを防ぎます。
    • また、正しくない multipart (両方とも multipart としてインポート可能) の代わりに、正しいパッケージ python-multipart がインストールされているかどうかを検出します。
    • PR #1851 は、元の PR #1627 をベースにしており、@chrisngyn, @YKo20010, @kx-chen によって作成されました。
  • Gitter リリースボットを再度有効にしました。PR #1831
  • メインの SQL チュートリアルから非同期 SQL データベースのチュートリアルへのリンクを追加しました。PR #1813 by @short2strings
  • プロキシの背後にあるチュートリアルのタイプミスを修正しました。PR #1807 by @toidi
  • ポルトガル語ドキュメントのタイプミスを修正しました。PR #1795 by @izaguerreiro
  • ウクライナ語の翻訳セットアップを追加しました。PR #1830
  • 外部リンク FastAPI を使用して高速データサイエンスアプリケーションを構築およびホストする を追加しました。PR #1786 by @Kludex
  • カスタム json_encoders を持つ他のモデルから継承した Pydantic モデルのエンコードを修正しました。PR #1769 by @henrybetts
  • jsonable_encoder を簡略化および改善しました。PR #1754 by @MashhadiNima
  • いくつかの点で内部コード構文を簡略化しました。PR #1753 by @uriyyo
  • 内部型指定を改善し、Optional パラメーターを宣言しました。PR #1731 by @MashhadiNima
  • ドキュメントに外部リンク Azure App Service に FastAPI をデプロイする を追加しました。PR #1726 by @windson
  • WebSocket テストに関する Starlette ドキュメントへのリンクを追加しました。PR #1717 by @hellocoldworld
  • 依存関係の生成をリファクタリングし、for ループをマージしました。PR #1714 by @Bloodielie
  • Jinja を使用したテンプレートの例を、HTML メディアタイプを含めるように更新しました。PR #1690 by @frafra
  • セキュリティに関するドキュメントのタイプミスを修正しました。PR #1678 by @nilslindemann
  • 依存関係に関するドキュメントのタイプミスを修正しました。PR #1675 by @nilslindemann
  • FastAPI**extra パラメータの型注釈を修正しました。PR #1659 by @bharel
  • ダークモードのブラウザでドキュメントを修正するために、MkDocs Material をバンプしました。PR #1789 by @adriencaccia
  • 各コミットからドキュメントプレビューのコメントを削除しました。PR #1826
  • Gitter 通知ボットの GitHub コンテキスト抽出を更新しました。PR #1766

0.60.1

  • GitHub の隠されたコンテキストを調べるために、GitHub アクションのデバッグログを追加しました。PR #1764
  • オンラインドキュメントに OS 環境設定テーマを使用します。PR #1760 by @adriencaccia
  • Windows で静的ファイルを使用する場合の脆弱性に対処するために、Starlette をバージョン 0.13.6 にアップグレードしました。PR #1759 by @jamesag26
  • swagger-api/swagger-ui#6249 の修正を待って、Swagger UI を一時的にピン留めしました。PR #1763
  • GitHub Actions を更新し、プレマージからのコミットではなく、ドキュメントプレビューの PR からのコミットを使用するようにしました。PR #1761
  • GitHub Actions を更新し、Gitter ボットをリファクタリングしました。PR #1746

0.60.0

  • プレビュードキュメントの欠落を監視し、プレビューデプロイをトリガーする GitHub Action を追加しました。PR #1740
  • ドキュメントプレビューで成果物を取得するためのカスタム GitHub Action を追加しました。PR #1739
  • PR からドキュメントをプレビューするための新しい GitHub Actions を追加しました。PR #1738
  • GitHub Actions をサポートするために XML テストカバレッジを追加しました。PR #1737
  • バッジを更新し、GitHub Actions がメインの CI であるため、Travis を削除しました。PR #1736
  • CI 用に GitHub Actions を追加し、Travis から移行しました。PR #1735
  • 本体付きの GET リクエストの OpenAPI スキーマを追加するためのサポートを追加しました。PR #1626 by @victorphoenix3

0.59.0

  • OAuth2 ユーティリティの docstring のタイプミスを修正しました。PR #1621 by @tomarv2
  • PyJWT の代わりに Python-jose を使用するように JWT ドキュメントを更新しました。初期 PR #1610 by @asheux
  • ドキュメントの検索バーを修正/再有効化しました。PR #1703
  • paths 全体をプレフィックスする代わりに、root_path がある場合に OpenAPI servers で "server" を自動生成します
    • FastAPI クラスの新しいパラメータを追加しました: servers の自動生成を無効にする root_path_in_servers
    • 追加サーバーroot_path および servers に関する新しいドキュメント。
    • リバースプロキシの背後にある場合でもこれらの例がそのまま動作するように、tokenUrl="token" に相対 URL を使用するように OAuth2 の例を更新しました。
    • 初期 PR #1596 by @rkbeatss
  • 外部リンクのタイプミス/リンクを修正。PR #1702
  • 外部リンクの処理を更新し、データファイルを使用するようにして、新しいリンクが追加されたときにすぐに古くならないようにヘッダーを翻訳できるようにしました。PR #https://github.com/tiangolo/fastapi/pull/1701
  • 外部リンク FastAPIとStreamlitを使用したPythonでの機械学習モデルの提供をドキュメントに追加。PR #1669 by @davidefiocco
  • Pydantic Unionsの順序に関する注記をドキュメントに追加。PR #1591 by @kbanc
  • エディターでのテストのサポートを改善。PR #1699
  • 依存関係を固定。PR #1697
  • isortをバージョン5.x.xに更新。PR #1670 by @asheux

0.58.1

0.58.0

  • すべての追加メタデータを保持するために、OpenAPIレスポンスをディープマージ。PR #1577
  • メインアプリのイベントのみが実行されること(サブアプリではない)をドキュメントで言及。PR #1554 by @amacfie
  • ボディ検証エラーレスポンスを修正し、埋め込まれていない場合はボディ変数を組み込まないようにします。PR #1553 by @amacfie
  • 依存関係のオーバーライドを使用する場合のOAuth2セキュリティスコープのテストを修正。PR #1549 by @amacfie
  • JSONスキーマキーワードnotのモデルを、リストではなくJSONスキーマとして修正。PR #1548 by @v-do
  • OpenAPI serversのサポートを追加。PR #1547 by @mikaello

0.57.0

0.56.1

0.56.0

0.55.1

  • パスパラメータで独自のスキーマを持つenumの処理を修正しました。FastAPIでpydantic/pydantic#1432をサポートするためです。PRは#1463です。

0.55.0

  • enumがOpenAPIで独自のスキーマを持つことができるようにしました。FastAPIでpydantic/pydantic#1432をサポートするためです。PRは#1461です。
  • GitHub Sponsorsを通じて資金提供するためのリンクを追加しました。PRは#1425です。
  • 質問のためのIssueテンプレートを更新しました。PRは#1344、作成者は@retniktです。
  • ドキュメントにパスワードを保存することについての警告を更新しました。PRは#1336、作成者は@skorokithakisです。
  • タイプミスを修正しました。PRは#1326、作成者は@chenlです。
  • 代替、インスピレーション、比較 - Alternativas, Inspiração e Comparaçõesのポルトガル語翻訳を追加しました。PRは#1325、作成者は@Serronesです。
  • ドキュメントのタイプミスを2つ修正しました。PRは#1324、作成者は@waynervです。
  • CORSドキュメントを更新し、max_age=600の正しいデフォルトを修正しました。PRは#1301、作成者は@derekbekoeです。
  • メインページのポルトガル語翻訳を追加しました。PRは#1300、作成者は@Serronesです。
  • フィールドの追加情報に関するドキュメントを言い換え、明確にしました。PRは#1299、作成者は@chris-allnuttです。
  • ドキュメントの短い機能の*が(.の後で)すべての言語で一貫していることを確認しました。PRは#1424です。
  • SQLAlchemyチュートリアルのget_dbの実行順序を更新しました。PRは#1293、作成者は@bcbです。
  • Asyncドキュメントのタイプミスを修正しました。PRは#1423です。

0.54.2

0.54.1

  • データベースのテスト設定を更新しました。PRは#1226です。
  • 失敗したテストで応答テキストを表示することで、テストのデバッグを改善しました。PRは#1222、作成者は@samuelcolvinです。

0.54.0

  • asyncドキュメントの文法ミスを修正しました。PRは#1188、作成者は@mickeypashです。
  • response_model_exclude_defaultsresponse_model_exclude_noneのサポートを追加しました。
    • jsonable_encoderのパラメータinclude_noneを非推奨にし、Pydanticと同期を保つために反転したexclude_noneを追加しました。
    • PRは#1166、作成者は@voegtlelです。
  • データベースのテストに関する例を追加しました。最初のPRは#1144、作成者は@duganchenです。
  • 開発 - コントリビューション:翻訳に関するドキュメントを更新し、翻訳PRのレビューに関する注記を含めました。#1215
  • GitHub Markdownの互換性のために、README.mdのログスタイルを更新しました。PRは#1200、作成者は#geekgaoです。
  • Python venv env.gitignoreに追加しました。PRは#1212、作成者は@cassiobotaroです。
  • ポルトガル語の翻訳を開始しました。PRは#1210、作成者は@cassiobotaroです。
  • @lru_cache()を使用した依存関係を使用して、PydanticのSettingsに関するドキュメントを更新しました。PRは#1214です。
  • 最初のスペイン語翻訳FastAPIを追加しました。PRは#1201、作成者は@mariacamilaglです。
  • 設定と環境変数に関するドキュメントを追加しました。最初のPRは1118、作成者は@alexmitelmanです。

0.53.2

  • 依存関係とサブ依存関係のボディフィールドの自動埋め込みを修正しました。元のPRは#1079、作成者は@Toad2186です。
  • WebSocketテストの依存関係のオーバーライドを修正しました。PRは#1122、作成者は@amitlissackです。
  • 言語が常にソートされるようにドキュメントスクリプトを修正しました。PRは#1189です。
  • 中国語の翻訳を開始しました。PRは#1187、作成者は@RunningIkkyuです。
  • スキーマの追加 - 例に関するドキュメントを追加しました。PRは#1185です。

0.53.1

  • 翻訳のリファクタリング後の含まれる例を修正しました。PRは#1182です。
  • Fieldexampleに関するドキュメントの例を追加しました。ドキュメントはボディ - フィールド:JSONスキーマの追加にあります。PRは#1106、作成者は@JohnPatonです。
  • response_modelで再帰モデルを使用することを修正しました。PRは#1164、作成者は@voegtlelです。
  • Pycharmデバッグに関するドキュメントを追加しました。PRは#1096、作成者は@youngquanです。
  • ドキュメントのタイプミスを修正しました。PRは#1148、作成者は@PLNechです。
  • Windowsの開発環境の手順を更新しました。PRは#1179です。

0.53.0

  • テストカバレッジバッジを更新しました。PRは#1175です。
  • orjsonpip install fastapi[all]に追加しました。PRは#1161、作成者は@michael0liverです。
  • GZipMiddlewareの含まれる例を修正しました。PRは#1138、作成者は@arimbrです。
  • OAuth2PasswordRequestFormStrictのドキュメント文字列のクラス名を修正しました。PRは#1126、作成者は@adg-mhです。
  • ドキュメントの例の関数名を明確にしました。PRは#1121、作成者は@tmsickです。
  • 外部リンクApache KafkaプロデューサーとコンシューマーをFastAPIとaiokafkaでをドキュメントに追加しました。PRは#1112、作成者は@iwpndです。
  • Pydanticモデルでデータを返す際に、by_aliasまたはexclude_unsetを使用した場合のシリアライゼーションを修正しました。PR #1074 by @juhovh-aiven.
  • ドキュメントにGitterチャットを追加しました。PR #1061 by @aakashnand.
  • 翻訳ドキュメントを更新および簡略化しました。PR #1171.
  • FastAPIドキュメントの開発を更新し、Windowsのサポートを改善するためにアドレスを127.0.0.1に設定しました。PR #1169 by @mariacamilagl.
  • ドキュメントの翻訳サポートを追加しました。新しいドキュメント:開発 - 貢献:ドキュメント:翻訳。PR #1168.
  • ドキュメントのターミナルスタイルを更新し、Typer、CLIのFastAPIに関する注記を追加しました。PR #1139.

0.52.0

0.51.0

  • Starletteからユーティリティを再エクスポートしました。
    • これにより、from starlette.responses import JSONResponseの代わりにfrom fastapi.responses import JSONResponseのように使用できます。
    • これは主にシンタックスシュガーであり、開発者エクスペリエンスのための便宜です。
    • RequestResponseWebSocketstatusfrom fastapi import Responseのように、fastapiから直接インポートできるようになりました。これらはリクエストを直接使用したり、ヘッダーやクッキーを設定したり、ステータスコードを取得したりするためによく使用されるためです。
    • 多くの場所でドキュメントが変更されましたが、新しいドキュメントと顕著な改善があります。
    • PR #1064.

0.50.0

  • デプロイメント用のバージョンを固定することに関するドキュメントから、リリースノートへのリンクを追加しました。PR #1058.
  • コードをアップグレードして、Starletteの最新バージョンを使用するようにしました。以下が含まれます。
    • いくつかのバグ修正。
    • スラッシュのオプションのリダイレクト。末尾が/で終わる場合も終わらない場合も。
    • ルーターのイベント、"startup"、および"shutdown"
    • PR #1057.
  • デプロイメント用のFastAPIバージョンを固定することに関するドキュメントを追加しました:デプロイメント:FastAPIバージョン。PR #1056.

0.49.2

  • リリースノートのリンクを修正しました。PR #1052 by @sattosan.
  • リリースノートのタイプミスを修正しました。PR #1051 by @sattosan.
  • 混乱を避けるために、serialize_responseパラメータ名をリファクタリング/明確化しました。PR #1031 by @patrickmckenna.
  • プロファイリングを簡素化するために、各パス操作のハンドラー関数を分離された関数で呼び出すようにリファクタリングしました。PR #1027 by @sm-Fifteen.
  • テスト用の不足している依存関係を追加しました。PR #1026 by @sm-Fifteen.
  • List[int]のようなPython型を含む、レスポンスモデルの有効な型を受け入れるように修正しました。PR #1017 by @patrickmckenna.
  • SQLチュートリアルの書式を修正しました。PR #1015 by @vegarsti.

0.49.1

  • 依存関係とパス操作関数で使用した場合の、パス操作の重複パラメータを修正しました。PR #994 by @merowinger92.
  • 修正がすでにマージされ、新しいリリースがあるため、NetlifyプレビューのデプロイメントGitHubアクションを更新しました。PR #1047.
  • mypy構成を構成ファイルに移動しました。PR #987 by @hukkinj1.
  • フォークからのPRからNetlifyプレビューをデプロイできない問題を一時的に修正しました。PR #1046 by @mariacamilagl.

0.49.0

0.48.0

0.47.1

  • response_modelでのモデルフィルタリング、サブモデルの複製を修正しました。PR #889.
  • ORMモードを使用してイベントループをブロックするPydanticモデルのFastAPIシリアライゼーションを修正しました。PR #888.

0.47.0

0.46.0

  • タイプミスを修正し、設定を調整しました。PR #837.
  • 外部リンクに中国語の記事へのリンクを追加しました。PR 810 by @wxq0309.
  • OAuth2AuthorizationCodeBearerクラスを実装しました。PR #797 by @kuwv.
  • ドキュメントのメインページの例のアップグレードを更新しました。PR #795 by @cdeil.
  • サブルーターのコールバック処理を修正しました。PR #792 by @jekirl.
  • タイプミスを修正しました。PR #784 by @kkinder.
  • 外部リンクに4つの日本語の記事を追加しました。PR #783 by @HymanZHAN.
  • jsonable_encoderでメイン型のサブタイプ(例:asyncpgのUUID)のサポートを追加しました。PR #756 by @RmStorm.
  • ドキュメント内のPydanticのHttpUrlの用法を修正しました。PR #832 by @Dustyposa
  • ドキュメント内のTwitterリンクを修正しました。PR #813 by @justindujardin
  • FastAPIをPeewee ORMとともに正しく使用するためのドキュメントを追加しました。非同期スレッドを正しく処理するためにPeeweeの一部を上書きする方法を含みます。PR #789

0.45.0

  • OpenAPIコールバックのサポートを追加しました
    • 新しいドキュメント: OpenAPIコールバック
    • operationIdの生成をリファクタリングし、有効なPython名(ほとんどの言語で有効な変数でもある)になるようにしました。
    • APIRouterdefault_response_classパラメータを追加しました。
    • オリジナルのPR #722 by @booooh
  • ロギングをリファクタリングして、すべての場所で同じロガーを使用するようにし、ログ文字列とレベルを更新しました。PR #781
  • 外部リンクに記事を追加しました:Почему Вы должны попробовать FastAPI?。PR #766 by @prostomarkeloff
  • エラー処理に関するドキュメントでジェンダーバイアスを削除しました。PR #780。オリジナルのアイデアは、PR #761 by @classywhetten
  • Pydanticに合わせて、ドキュメントとbody-schemaへの参照をbody-fieldsに名前を変更しました。PR #746 by @prostomarkeloff

0.44.1

  • GitHubのソーシャルプレビュー画像をgitに追加しました。PR #752
  • PyPIの「トロブ分類子」を更新しました。PR #751
  • Python 3.8の完全なサポートを追加しました。TravisでPython 3.8を完全に有効にしました。PR 749
  • 「新しいissue」のテンプレートを更新しました。PR #749
  • エキゾチックなPydantic型のシリアライズを修正しました。PR #748 by @dmontagu

0.44.0

  • GitHubアクションIssue Managerを追加しました。PR #742
  • ドキュメントのタイプミスを修正しました。PR 734 by @bundabrg
  • jsonable_encoderでのcustom_encoderの使用を修正しました。PR #715 by @matrixise
  • 無効なXMLの例を修正しました。PR 710 by @OcasoProtal
  • デプロイドキュメントのタイプミスを修正し、文言を更新しました。PR #700 by @marier-nico
  • APIRouterドキュメントに依存関係に関するメモを追加しました。PR #698 by @marier-nico
  • 依存関係として非同期クラスメソッドのサポートを追加しました。#681 by @frankie567
  • 外部リンクにFastAPIとSwagger UIのチートシートを追加しました。PR #671 by @euri10
  • CORSの例のHTTPプロトコルのタイプミスを修正しました。PR #647 by @forestmonster
  • Pydanticバージョン1.0.0以降のサポートを追加しました。Pydantic 0.32.2の(非推奨の)一時的な後方互換性があります。PR #646 by @dmontagu

0.43.0

0.42.0

  • yield付きの依存関係、別名、終了ステップ、コンテキストマネージャー、クリーンアップ、ティアダウンなどを追加しました。
    • これにより、依存関係の完了後に追加のコードを追加できます。例えば、データベース接続を閉じるために使用できます。
    • yieldを持つ依存関係は、通常またはasyncにすることができます。FastAPIは、スレッドプールで通常の依存関係を実行します。
    • それらは通常の依存関係と組み合わせることができます。
    • yieldを持つ任意のツリー/レベルの依存関係を持つことができ、終了ステップは正しい順序で自動的に処理されます。
    • Python 3.7以上ではデフォルトで動作します。Python 3.6の場合、追加のバックポート依存関係が必要です
      • async-exit-stack
      • async-generator
    • yieldを持つ依存関係の新しいドキュメント。
    • データベースドキュメントを更新しましたSQL (リレーショナル) データベース:メインのFastAPIアプリケーション
    • PR #595
  • Webサイトのsitemap.xmlを修正しました。PR #598 by @samuelcolvin

0.41.0

  • 必要なStarletteを0.12.9にアップグレードしました。新しい範囲は>=0.12.9,<=0.12.9です。
    • FastAPIアプリケーションにStateapp.stateで追加しました。
    • PR #593
  • RequestAPIRouteのカスタムクラスの処理を改善しました。
    • これにより、次のようなユースケースをより簡単に解決できます。
      • リクエストの前または後にボディを読み込む(ミドルウェアと同等)。
      • ミドルウェアのようなコードを、パス操作のサブセットに対してのみ実行する。
      • リクエストをパス操作関数に渡す前に処理する。例:解凍、デシリアライズなど。
      • パス操作関数によって生成された後、返される前にレスポンスを処理する。例:カスタムヘッダーの追加、ロギング、追加のメタデータの追加。
    • 新しいドキュメントセクション:カスタムリクエストおよびAPIRouteクラス
    • PR #589 by @dmontagu
  • 他のサブルーターを含める場合に、ルーター内のカスタムルートクラスの保持を修正しました。PR #538 by @dmontagu

0.40.0

  • フォームを使用する場合にpython-multipartをインストールすることに関するメモをドキュメントに追加しました。PR #574 by @sliptonic
  • OpenAPIスキーマをアルファベット順に生成するようにしました。PR #554 by @dmontagu
  • パス操作関数からドキュメント文字列を切り捨てるためのサポートを追加しました。
  • Swagger UIとReDoc用に生成されたHTMLファイルのDOCTYPEを修正しました。PR #537 by @Trim21
  • デフォルトの422バリデーションエラーレスポンスを上書きする4XXレスポンスの処理を修正しました。PR #517 by @tsouvarev
  • シンプルなHTTP Basic認証に関するドキュメントのタイプミスを修正しました。PR #514 by @prostomarkeloff
  • 最初のステップの不適切なドキュメント例を修正しました。PR #511 by @IgnatovFedor
  • Swagger UI initOauth設定をパラメータswagger_ui_init_oauthでサポートしました。PR #499 by @zamiramir

0.39.0

  • パスパラメータにデフォルト値(例:None)を持たせ、エラーを発生させる代わりにそれらを破棄できるようにしました。
    • これにより、クエリパラメータから取得できるuser_id: str = Noneのようなパラメータを宣言できますが、同じパス操作をパス/users/{user_id}を持つルーターに含めることができます。この場合、パスから取得され、必須になります。
    • PR #464 by @jonathanunderwood
  • FastAPIインスタンスまたはinclude_routerdefault_response_classを設定するためのサポートを追加しました。最初のPRは#467 by @toppk
  • 文字列とfrom __future__ import annotationsを使用した型アノテーションのサポートを追加しました。PR #451 by @dmontagu

0.38.1

  • 不正なRequestクラスのインポートを修正しました。PR #493 by @kamalgill

0.38.0

  • 外部リンクと最近の意見に最近の記事を追加しました。PR #490
  • Starletteのサポート範囲を0.12.8を含むようにアップグレードしました。新しい範囲は>=0.11.1,<=0.12.8"です。PR #477 by @dmontagu
  • Pydanticバージョン0.32.2へのサポートをアップグレードし、それを使用するように内部コードを更新しました(破壊的変更)。PR #463 by @dmontagu

0.37.0

  • 高度なユースケースに対応したカスタムルートクラスのサポートを追加しました。PR #468 by @dmontagu
  • ReDocでGoogleフォントを無効にできるようにしました。PR #481 by @b1-luettje
  • セキュリティ上の問題を修正しました:レスポンスモデルのサブクラスを返し、skip_defaultsを使用すると、情報が漏洩する可能性があります。PR #485 by @dmontagu
  • Python 3.8-devのテストを有効にしました。PR #465 by @Jamim
  • response_modelでPydanticデータクラスのサポートとテストを追加しました。PR #454 by @dconathan
  • OAuth2 JWTチュートリアルのタイプミスを修正しました。PR #447 by @pablogamboa
  • Body()パラメータのmedia_typeパラメータを使用して、requestBodyのOpenAPIのメディアタイプを設定しました。PR #439 by @divums
  • Nico Axtmann氏による記事「ONNXとFastAPIを使ったscikit-learnモデルのデプロイ」を追加しました。Nico Axtmann氏著。PR #438 by @naxty
  • OpenAPIでカスタムの422(バリデーションエラー)レスポンス/スキーマを設定できるようにしました。
    • また、固定されたapplication/json(デフォルト)の代わりに、レスポンスクラスからメディアタイプを使用するようにしました。
    • PR #437 by @divums
  • ステータスコードと同時に"default"の追加レスポンスを使用する問題を修正しました。PR #489
  • 追加レスポンスでステータスコード範囲(5XX4XXなど)と"default"を使用できるようにしました。PR #435 by @divums

0.36.0

  • Pydanticモデルを返す際のskip_defaultsの実装を修正しました。PR #422 by @dmontagu
  • 同じ*パスオペレーション*で複数の場所で同じ依存関係を使用する場合のOpenAPI生成を修正しました。PR #417 by @dmontagu
  • include_routerprefixで使用する*パスオペレーション*で空のパスを持てるようにしました。
    • これにより、/catsのルーターとそのすべての*パスオペレーション*を持つ一方で、/catsの1つを持つことが可能になります。
    • 今では、/cats/(末尾にスラッシュ付き)だけである必要はありません。
    • 使用するには、*パスオペレーション*でパスを空文字列("")として宣言します。
    • PR #415 by @vitalik
  • PR #415のマージ後のmypyエラーを修正しました。PR #462

0.35.0

  • ルーティングのassertのタイプミスを修正しました。PR #419 by @pablogamboa
  • ドキュメントのタイプミスを修正しました。PR #411 by @bronsen
  • Unionで宣言されたボディタイプの解析を修正しました。PR #400 by @koxudaxi

0.34.0

  • サポートされるStarletteの範囲を最新の0.12.7を含むようにアップグレードしました。新しい範囲は0.11.1,<=0.12.7です。PR #367 by @dedsm

  • PR #333 by @dmontaguの重複モデルを使用したOpenAPIスキーマのテストを追加しました。PR #385

0.33.0

  • Pydanticのバージョンを0.30.0にアップグレードしました。PR #384 by @jekirl

0.32.0

  • 機能に関するドキュメントのタイプミスを修正しました。PR #380 by @MartinoMensio

  • クエリパラメーターの例のソースコードのlimitを修正しました。PR #366 by @Smashman

  • OAuth2スコープに関するドキュメントの文言を更新しました。PR #371 by @cjw296

  • Enumstrから継承し、Swagger UIのレンダリングを改善するようにドキュメントを更新しました。PR #351

  • 回帰を修正し、Swagger UIのディープリンクを再度追加しました。PR #350

  • .include_routerprefixにパステンプレートがある場合のテストを追加しました。PR #349

  • ドキュメントに注記を追加しました:「異なるprefixで同じルーターを複数回含める」。PR #348

  • 同じ複合ボディを持つ同じ名前の(異なるモジュールの)2つの関数のOpenAPI/JSONスキーマの生成を修正しました。

    • 複合ボディのIDは、自動生成される名前が異なるモジュールで重複する可能性がある関数名を使用するため、ルート名だけでなくパスに基づいています。
    • 同じ新しいID生成がレスポンスモデルにも適用されます。
    • これにより、これらのモデルの生成されたタイトルも変更されます。
    • 複合ボディとレスポンスモデルのみが影響を受けます。これらは動的に生成され、モジュール(Pythonファイル)がないためです。
    • これにより、異なるプレフィックス(例えば、/api/v2/api/latest)で、同じAPIRouter複数.include_router()で使用できる可能性も追加され、正常に動作するようになりました。
    • PR #347

0.31.0

  • サポートされるPydanticのバージョンを0.29.0にアップグレードしました。

0.30.1

0.30.0

  • PydanticのORMモードのサポートを追加しました。

    • ORMモードのPydanticモデル、リレーション付きのSQLAlchemyモデル、ファイルの分離、コードの簡略化、その他の変更を使用して、SQLAlchemyを使用したSQLに関するドキュメントを更新しました。新しいドキュメント:SQL(リレーショナル)データベース
    • ORMモードの新しいサポートにより、遅延読み込み、ハイブリッドプロパティ、動的/ゲッター(@propertyデコレーターを使用)を持つORMに関連する問題が修正/機能が追加されました。
    • これは、SQLAlchemy、Peewee、Tortoise ORM、GINO ORMなどのORM、および事実上その他すべてのORMに適用されます。
    • もしあなたの*パスオペレーション*が属性を持つ任意のオブジェクトを返した場合(例:my_item["name"]ではなくmy_item.name)、かつresponse_modelを使用する場合は、ドキュメント(上記のリンク)で説明されているように、orm_mode = TrueでPydanticモデルを更新してください。
    • リクエストボディとしてプレーンなdictを受け取るに関する新しいドキュメント:任意のdictのボディ
    • レスポンスで任意のdictを返すに関する新しいドキュメント:任意のdictでのレスポンス
    • 技術的な詳細:
      • response_modelを宣言すると、*パスオペレーション関数*から返されたものからレスポンスコンテンツを生成するために直接使用されます。
      • これまでは、返されたコンテンツは、ORMモデルのように属性を持つ任意のオブジェクトではなく、dictのような「jsonable」オブジェクトであることを保証するために、最初にjsonable_encoderを通過しました。そのため、属性を持つオブジェクトのPydanticモデルを、orm_mode = Trueを使用するように必ず更新する必要があります。
      • もしresponse_modelがない場合は、返されたオブジェクトは、最初にjsonable_encoderを通過します。
      • response_modelを宣言すると、同じresponse_model型の宣言はそのまま使用されず、新しい宣言(すべてのサブモデルも複製された複製されたPydantic Field)を作成するために「複製」されます。
      • これは潜在的なセキュリティ問題を回避/修正します:返されたオブジェクトはPydanticに直接渡されるため、返されたオブジェクトがresponse_modelのサブクラスの場合(例:Userから継承しているが、hashed_passwordなどの追加フィールドを含むUserInDBを返し、Userresponse_modelで使用されている場合)、(UserInDBUserのサブクラスであるため)検証を通過し、オブジェクトはhashed_passwordを含め、そのまま返されます。これを修正するために、宣言されたresponse_modelが複製されます。それがPydanticモデルクラスである場合(またはList[Item]のようにPydanticモデルクラスが含まれている場合)、Pydanticモデルクラスは別のクラス(「複製された」クラス)になります。そのため、サブクラスであるオブジェクトは、複製されたresponse_modelのサブクラスではなくなったため、検証をそのまま通過して返されることはありません。代わりに、返されたオブジェクトの内容で新しいPydanticモデルオブジェクトが作成されます。そのため、それは新しいオブジェクト(返されたオブジェクトのデータで作成された)になり、通常どおり宣言されたフィールドのみを含む複製されたresponse_modelによってフィルタリングされます。
    • PR #322
  • ルーティングの未使用のRegExコードを削除/クリーンアップしました。PR #314 by @dmontagu

  • 追加レスポンスにデフォルトのレスポンスステータスコードの説明を使用します。PR #313 by @duxiaoyao

  • Pydanticのサポートを0.28にアップグレードしました。PR #320 by @jekirl

0.29.1

0.29.0

  • Responseパラメータの宣言のサポートを追加しました

0.28.0

  • リクエストごとに依存関係キャッシュを実装。

    • これにより、同じリクエストに対して各依存関係が複数回呼び出されるのを回避します。
    • これは、外部サービスを呼び出したり、コストのかかる計算を実行したりする場合に役立ちます。
    • これは、依存関係が (.include_router() を使用して) ルーターレベルで*パス操作デコレータ*の依存関係として宣言され、その後、特定の*パス操作*で再度宣言された場合、依存関係が1回だけ呼び出されることも意味します。
    • キャッシュは、Depends(your_dependency, use_cache=False)のように、依存関係宣言ごとに use_cache=False を使用して無効にできます。
    • ドキュメントを更新しました: 同じ依存関係を複数回使用する
    • PR #292
  • テスト用の依存関係オーバーライドを実装。

0.27.2

0.27.1

  • HTTPBearer セキュリティスキームでの auto_error=False の処理を修正しました。auto_error=False の場合、不正な Authorization ヘッダーがある場合に raise しないでください。PR #282

  • HTTPException の型宣言を修正しました。PR #279

0.27.0

  • スコープを使用した OAuth 2.0 に関するドキュメントの壊れたリンクを修正しました。PR #275 by @dmontagu

  • Pydantic Field を使用してパラメータ抽出をリファクタリング。

0.26.0

  • 検証エラーのエラー処理を分離。

  • 明示的な Path(...) を必要とせずに、パスパラメータパスのサポートを修正しました。

  • FastAPI のテストに関するドキュメントを更新しました。POST の使用、JSON の送信、ヘッダーのテストなどを含めます。新しいドキュメント: テスト。PR #271

  • List[Model] のように汎用的な Python 型を許可するように response_model の型宣言を修正しました。主にユーザー向けの mypy を修正します。PR #266

0.25.0

  • Pydantic の include, exclude, by_alias のサポートを追加。

    • ドキュメントを更新: レスポンスモデル
    • ドキュメントを追加しました: 本文 - 更新。Pydantic の skip_defaults を使用します。
    • メソッドの一貫性テストを追加。
    • PR #264
  • 新しい貢献者を支援するために、GitHub に CONTRIBUTING.md ファイルを追加しました。PR #255 by @wshayes

  • Pydantic の skip_defaults のサポートを追加

    • 新しい*パス操作デコレータ*パラメーター response_model_skip_defaults があります。
      • パラメーターの名前は、今後のバージョンで response_skip_defaultsmodel_skip_defaults、または同様のものに変更される可能性が非常に高いです。
    • response_model_skip_defaults の使用に関する新しいドキュメントセクション
    • PR #248 by @wshayes

0.24.0

  • 依存関係とパラメーターを使用した WebSocket のサポートを追加。

  • Pydantic の互換バージョンを 0.26.0 にアップグレードします。

    • これには、IP アドレスとネットワークオブジェクト、バグ修正、その他の機能の JSON スキーマのサポートが含まれます。
    • PR #247 by @euri10

0.23.0

  • Starlette の互換バージョンを 0.12.0 にアップグレードします。

    • これには、ASGI 3 (標準の最新バージョン) のサポートが含まれます。
    • Starlette の StreamingResponse を、ファイルライクオブジェクト (open() によって返されるものなど) のようなイテレータで使用できるようになりました。
    • 高度なシナリオでは、starlette.concurrency から低レベルユーティリティ iterate_in_threadpool を使用できるようになりました。
    • PR #243
  • Swagger UI の OAuth2 リダイレクトページを追加します。これにより、Swagger UI ドキュメントで委任された認証を行うことができます。これが機能するには、OAuth2 プロバイダー (Auth0、Facebook、Google など) の許可されたコールバックに {your_origin}/docs/oauth2-redirect を追加する必要があります。

    • たとえば、開発中は、http://localhost:8000/docs/oauth2-redirect になります。
    • このコールバック URL は、フロントエンドで使用されているものとは独立していることに注意してください。https://yourdomain.com/login/callback に別のコールバックがある場合もあります。
    • これは、Swagger UI を使用した API ドキュメントでの委任された認証を許可するためだけのものです。
    • PR #198 by @steinitzu
  • パフォーマンスを向上させるために、Swagger UI および ReDoc ルートハンドラー (*パス操作*) をラムダではなく async 関数にします。PR #241 by @Trim21

  • Swagger UI および ReDoc URL をパラメーター化可能にし、ローカルバージョンをホストおよび提供してオフラインドキュメントを作成できるようにします。PR #112 by @euri10

0.22.0

  • dependencies パラメータのサポートを追加

    • 実行する必要があるが、戻り値が重要ではないか、*パス操作関数*で使用されない依存関係のための、*パス操作デコレータ*のパラメータ。
    • FastAPI アプリケーションおよびルーターの .include_router() メソッドのパラメータ。ルーター内の各*パス操作*で実行する必要がある依存関係を含めます。
      • これは、たとえば、特定のグループのパス操作で認証または権限を要求する場合に役立ちます。
      • 異なる dependencies を異なるルーターに適用できます。
    • これらの dependencies は、通常のパラメータの依存関係の前に実行されます。また、通常の依存関係も実行されます。それらを組み合わせることができます。
    • ルーターで宣言された依存関係は最初に実行され、次にパス操作デコレータで定義された依存関係、次に通常のパラメータで宣言された依存関係が実行されます。それらはすべて組み合わされて実行されます。
    • これらすべては、より高度なスコープを使用した OAuth 2.0 セキュリティシナリオのために、これらの dependencies パラメータで scopes を使用した Security を使用することもサポートしています。
    • *パス操作デコレータ*の依存関係に関する新しいドキュメント。
    • include_router() メソッドの依存関係に関する新しいドキュメント。
    • PR #235
  • Starlette URL コンバーターの OpenAPI ドキュメントを修正しました。/some/url/{p:path} のように、パス全体をパラメーターとして取得するために、path コンバーターを使用する場合に特に役立ちます。PR #234 by @euri10

  • fastapi からエクスポートされたデフォルトのパラメータユーティリティをクラスではなく関数にします (新しい関数はそれらのクラスのインスタンスを返します)。FastAPI ユーザーのコードで戻り値の型をオーバーライドして mypy エラーを修正できるようにします。Path, Query, Header, Cookie, Body, Form, File, Depends, および Security に適用されます。PR #226 および PR #231

  • 開発スクリプト test.sh, lint.sh, および format.sh を分離。PR #232

  • Python 3.7 の black フォーマットチェックを再度有効にします。PR #229 by @zamiramir

0.21.0

  • 本文の解析エラー時に、ログコードでのより良いイントロスペクションを可能にするために、前の例外から from を発生させます。PR #192 by @ricardomomm

  • ルートロガーではなく、"fastapi" という名前の Python ロガーを使用します。PR #222 by @euri10

  • Pydantic をバージョン 0.25 にアップグレードします。PR #225 by @euri10

  • ルーティングのタイプミスを修正しました。PR #221 by @djlambert

0.20.1

  • ファイル py.typed を含むパッケージに型情報を追加します。PR #209 by @meadsteve

  • Gitter 用の FastAPI ボットを追加します。新しいリリースを自動的にアナウンスします。PR #189

0.20.0

0.19.0

0.18.0

  • HTTP Basic Authのドキュメントを追加します。PR #177

  • 自動ヘッダー(ブラウザの自動ログインプロンプト)によるHTTP Basic Authの処理をアップグレードします。PR #175

  • セキュリティのために依存関係を更新します。PR #174

  • ミドルウェアのドキュメントを追加します。PR #173

0.17.0

  • FlitをCIから公開するようにします。PR #170

  • CORS (Cross-Origin Resource Sharing)の処理に関するドキュメントを追加します。PR #169

  • デフォルトで、エイリアスでエンコードします。これにより、Pydanticのaliasパラメーターがデフォルトで機能するようになります。PR #168

0.16.0

  • パス操作docstring 解析をアップグレードし、適切なMarkdown記述をサポートします。パス操作の設定で新しいドキュメントを参照してください。PR #163

  • 正しいデータ型を使用するように、Pydanticの内部使用をリファクタリングします。PR #164

  • Pydanticをバージョン 0.23 にアップグレードします。PR #160 by @euri10

  • Extra Modelsに関するチュートリアルのタイプミスを修正します。PR #159 by @danielmichaels

  • ドキュメントのクエリパラメーターのURL例を修正します。PR #157 by @hayata-yamamoto

0.15.0

0.14.0

  • OpenAPI(APIドキュメント内)で自動生成されるパス操作の名前を改善します。生成された名前 "Read Items Get"の代わりに、関数 read_items は "Read Items" を持つようになります。PR #155

  • FastAPI のテストのドキュメントを追加します。PR #151

  • /docs Swagger UI を更新して、ディープリンクを有効にします。これにより、ドキュメント内のパス操作ドキュメントを直接指すURLを共有できます。PR #148 by @wshayes

  • 開発依存関係、Pipfile.lock を更新します。PR #150

  • 代替、インスピレーション、比較にFalconとHugを含めます。

0.13.0

  • SecurityScopesを使用したOAuth2スコープのサポートを改善/アップグレードします。
    • SecurityScopesは、すべてのスーパー依存関係/依存関係のスコープを取得するために、Requestのようにパラメーターとして宣言できます。
    • Securityの処理を改善し、SecurityScopesを宣言するときにスコープをマージします。
    • DependsSecurityBaseOAuth2など)クラスを使用することを許可し、それらをドキュメント化します。Securityscopesを宣言するためにのみ必要になりました。
    • に関するドキュメントを更新しました:OAuth2(パスワードとハッシュ)、JWTトークンを使用したBearer
    • に関する新しいドキュメント:OAuth2スコープ
    • PR #141

0.12.1

  • バグを修正: APIRouter.include_router() で追加の responses を処理します。PR #140

  • SQLチュートリアルのタイプミスを修正します。PR #138 by @mostaphaRoudsari

  • ネストされたモデルとJWTを使用したOAuth2に関するセクションのタイプミスを修正します。PR #127 by @mmcloud

0.12.0

  • OpenAPI(およびAPIドキュメント)でレスポンスを拡張するために、パス操作デコレータに追加のresponsesパラメーターを追加します。
    • また、response_modelから生成された既存のレスポンスを拡張したり、他のメディアタイプ(画像など)を宣言したりできます。
    • 新しいドキュメントはこちらにあります:追加のレスポンス
    • responses.include_router()にも追加できます。更新されたドキュメントはここにあります:より大きなアプリケーション
    • PR #97 originally initiated by @barsi
  • scripts/test-cov-html.sh を更新して、開発用に -vv などの追加パラメーターを渡せるようにします。

0.11.0

  • セキュリティユーティリティ関数に auto_error パラメーターを追加します。それらをオプションにすることができます。また、複数の代替セキュリティスキームを持ち、それらを単一の依存関係でチェックする代わりに、満たされていない場合に自動的にクライアントにエラーを返すこともできます。PR #134

  • 例外がある場合でもデータベースセッションを閉じるようにSQLチュートリアルを更新します。PR #89 by @alexiri

  • pyproject.tomlの重複した依存関係を修正します。PR #128 by @zxalif

0.10.3

0.10.2

  • Python Union(JSON Schema additionalProperties)の宣言に対するOpenAPI(JSON Schema)を修正します。PR #121

  • Celeryに関するメモを使用して、バックグラウンドタスクを更新します。

  • ユニオンとリストを使用したレスポンスモデルをドキュメント化しました:追加モデル。PR #108

0.10.1

0.10.0

0.9.1

0.9.0

  • 互換性のあるPydanticバージョンを 0.21.0 にアップグレードします。PR #90

  • に関するドキュメントを追加します:アプリケーション構成

  • ドキュメント内のタイプミスを修正します。PR #76 by @matthewhegarty

  • "デプロイメント"のリンクを"より大きなアプリケーション"に修正します。

0.8.0

  • 開発スクリプトを実行可能にします。PR #76 by @euri10

  • app.include_router()tagsを追加するサポートを追加します。PR #55 by @euri10。ドキュメントはより大きなアプリケーションのセクションで更新されました。

  • Uvicornに関連するドキュメントを更新して、バージョン 0.5.x の新しい --reload オプションを使用します。PR #74

  • isort インポートとスクリプトを更新して、新しいバージョンと互換性を持たせます。PR #75

0.7.1

0.7.0

0.6.4

0.6.3

  • ドキュメントに Favicon を追加しました。PR #53

0.6.2

0.6.1

0.6.0

  • 新しい公式の request.state を使用して、https://fastapi.dokyumento.jp/tutorial/sql-databases/ の SQLAlchemy チュートリアルを更新しました。PR #45

  • Starlette をバージョン 0.11.1 にアップグレードし、必要な互換性の変更を追加しました。PR #44

0.5.1

0.5.0

0.4.0

0.3.0

0.2.1

  • Config を持つが json_encoders を持たない Pydantic モデルの jsonable_encoder を修正しました:#29

0.2.0

  • セキュリティセクションの誤字を修正しました:#24@kkinder による。

  • Pydantic のカスタム JSON エンコーダーのサポートを追加しました:#21@euri10 による。

0.1.19

  • Starlette のバージョンを現在の最新 0.10.1 にアップグレードしました:#17@euri10 による。