Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pin fastapi to latest version 0.75.0 #160

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Mar 4, 2022

This PR pins fastapi to the latest release 0.75.0.

Changelog

0.75.0

Features

* ✨ Add support for custom `generate_unique_id_function` and docs for generating clients. New docs: [Advanced - Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/). PR [#4650](https://github.com/tiangolo/fastapi/pull/4650) by [tiangolo](https://github.com/tiangolo).

0.74.1

Features

* ✨ Include route in scope to allow middleware and other tools to extract its information. PR [4603](https://github.com/tiangolo/fastapi/pull/4603) by [tiangolo](https://github.com/tiangolo).

0.74.0

Breaking Changes

* ✨ Update internal `AsyncExitStack` to fix context for dependencies with `yield`. PR [4575](https://github.com/tiangolo/fastapi/pull/4575) by [tiangolo](https://github.com/tiangolo).

Dependencies with `yield` can now catch `HTTPException` and custom exceptions. For example:

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


After the dependency with `yield` handles the exception (or not) the exception is raised again. So that any exception handlers can catch it, or ultimately the default internal `ServerErrorMiddleware`.

If you depended on exceptions not being received by dependencies with `yield`, and receiving an exception breaks the code after `yield`, you can use a block with `try` and `finally`:

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


...that way the `finally` block is run regardless of any exception that might happen.

Features

* The same PR [4575](https://github.com/tiangolo/fastapi/pull/4575) from above also fixes the `contextvars` context for the code before and after `yield`. This was the main objective of that PR.

This means that now, if you set a value in a context variable before `yield`, the value would still be available after `yield` (as you would intuitively expect). And it also means that you can reset the context variable with a token afterwards.

For example, this works correctly now:

Python
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)


...before this change it would raise an error when resetting the context variable, because the `contextvars` context was different, because of the way it was implemented.

**Note**: You probably don't need `contextvars`, and you should probably avoid using them. But they are powerful and useful in some advanced scenarios, for example, migrating from code that used Flask's `g` semi-global variable.

**Technical Details**: If you want to know more of the technical details you can check out the PR description [4575](https://github.com/tiangolo/fastapi/pull/4575).

Internal

* 🔧 Add Striveworks sponsor. PR [4596](https://github.com/tiangolo/fastapi/pull/4596) by [tiangolo](https://github.com/tiangolo).
* 💚 Only build docs on push when on master to avoid duplicate runs from PRs. PR [4564](https://github.com/tiangolo/fastapi/pull/4564) by [tiangolo](https://github.com/tiangolo).
* 👥 Update FastAPI People. PR [4502](https://github.com/tiangolo/fastapi/pull/4502) by [github-actions[bot]](https://github.com/apps/github-actions).

0.73.0

Features

* ✨ Add support for declaring `UploadFile` parameters without explicit `File()`. PR [4469](https://github.com/tiangolo/fastapi/pull/4469) by [tiangolo](https://github.com/tiangolo). New docs: [Request Files - File Parameters with UploadFile](https://fastapi.tiangolo.com/tutorial/request-files/#file-parameters-with-uploadfile).
* ✨ Add support for tags with Enums. PR [4468](https://github.com/tiangolo/fastapi/pull/4468) by [tiangolo](https://github.com/tiangolo). New docs: [Path Operation Configuration - Tags with Enums](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags-with-enums).
* ✨ Allow hiding from OpenAPI (and Swagger UI) `Query`, `Cookie`, `Header`, and `Path` parameters. PR [3144](https://github.com/tiangolo/fastapi/pull/3144) by [astraldawn](https://github.com/astraldawn). New docs: [Query Parameters and String Validations - Exclude from OpenAPI](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-from-openapi).

Docs

* 📝 Tweak and improve docs for Request Files. PR [4470](https://github.com/tiangolo/fastapi/pull/4470) by [tiangolo](https://github.com/tiangolo).

Fixes

* 🐛 Fix bug preventing to use OpenAPI when using tuples. PR [3874](https://github.com/tiangolo/fastapi/pull/3874) by [victorbenichoux](https://github.com/victorbenichoux).
* 🐛 Prefer custom encoder over defaults if specified in `jsonable_encoder`. PR [2061](https://github.com/tiangolo/fastapi/pull/2061) by [viveksunder](https://github.com/viveksunder).
 * 💚 Duplicate PR to trigger CI. PR [4467](https://github.com/tiangolo/fastapi/pull/4467) by [tiangolo](https://github.com/tiangolo).

Internal

* 🐛 Fix docs dependencies cache, to get the latest Material for MkDocs. PR [4466](https://github.com/tiangolo/fastapi/pull/4466) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add sponsor Dropbase. PR [4465](https://github.com/tiangolo/fastapi/pull/4465) by [tiangolo](https://github.com/tiangolo).

0.72.0

Features

* ✨ Enable configuring Swagger UI parameters. Original PR [2568](https://github.com/tiangolo/fastapi/pull/2568) by [jmriebold](https://github.com/jmriebold). Here are the new docs: [Configuring Swagger UI](https://fastapi.tiangolo.com/advanced/extending-openapi/#configuring-swagger-ui).

Docs

* 📝 Update Python Types docs, add missing 3.6 / 3.9 example. PR [4434](https://github.com/tiangolo/fastapi/pull/4434) by [tiangolo](https://github.com/tiangolo).

Translations

* 🌐 Update Chinese translation for `docs/help-fastapi.md`. PR [3847](https://github.com/tiangolo/fastapi/pull/3847) by [jaystone776](https://github.com/jaystone776).
* 🌐 Fix Korean translation for `docs/ko/docs/index.md`. PR [4195](https://github.com/tiangolo/fastapi/pull/4195) by [kty4119](https://github.com/kty4119).
* 🌐 Add Polish translation for `docs/pl/docs/index.md`. PR [4245](https://github.com/tiangolo/fastapi/pull/4245) by [MicroPanda123](https://github.com/MicroPanda123).
* 🌐 Add Chinese translation for `docs\tutorial\path-operation-configuration.md`. PR [3312](https://github.com/tiangolo/fastapi/pull/3312) by [jaystone776](https://github.com/jaystone776).

Internal

* 🔧 Enable MkDocs Material Insiders' `content.tabs.link`. PR [4399](https://github.com/tiangolo/fastapi/pull/4399) by [tiangolo](https://github.com/tiangolo).

0.71.0

Features

* ✨ Add docs and tests for Python 3.9 and Python 3.10. PR [3712](https://github.com/tiangolo/fastapi/pull/3712) by [tiangolo](https://github.com/tiangolo).
 * You can start with [Python Types Intro](https://fastapi.tiangolo.com/python-types/), it explains what changes between different Python versions, in Python 3.9 and in Python 3.10.
 * All the FastAPI docs are updated. Each code example in the docs that could use different syntax in Python 3.9 or Python 3.10 now has all the alternatives in tabs.
* ⬆️ Upgrade Starlette to 0.17.1. PR [4145](https://github.com/tiangolo/fastapi/pull/4145) by [simondale00](https://github.com/simondale00).

Internal

* 👥 Update FastAPI People. PR [4354](https://github.com/tiangolo/fastapi/pull/4354) by [github-actions[bot]](https://github.com/apps/github-actions).
* 🔧 Add FastAPI Trove Classifier for PyPI as now there's one 🤷😁. PR [4386](https://github.com/tiangolo/fastapi/pull/4386) by [tiangolo](https://github.com/tiangolo).
* ⬆ Upgrade MkDocs Material and configs. PR [4385](https://github.com/tiangolo/fastapi/pull/4385) by [tiangolo](https://github.com/tiangolo).

0.70.1

There's nothing interesting in this particular FastAPI release. It is mainly to enable/unblock the release of the next version of Pydantic that comes packed with features and improvements. 🤩

Fixes

* 🐛 Fix JSON Schema for dataclasses, supporting the fixes in Pydantic 1.9. PR [4272](https://github.com/tiangolo/fastapi/pull/4272) by [PrettyWood](https://github.com/PrettyWood).

Translations

* 🌐 Add Korean translation for `docs/tutorial/request-forms-and-files.md`. PR [3744](https://github.com/tiangolo/fastapi/pull/3744) by [NinaHwang](https://github.com/NinaHwang).
* 🌐 Add Korean translation for `docs/tutorial/request-files.md`. PR [3743](https://github.com/tiangolo/fastapi/pull/3743) by [NinaHwang](https://github.com/NinaHwang).
* 🌐 Add portuguese translation for `docs/tutorial/query-params-str-validations.md`. PR [3965](https://github.com/tiangolo/fastapi/pull/3965) by [leandrodesouzadev](https://github.com/leandrodesouzadev).
* 🌐 Add Korean translation for `docs/tutorial/response-status-code.md`. PR [3742](https://github.com/tiangolo/fastapi/pull/3742) by [NinaHwang](https://github.com/NinaHwang).
* 🌐 Add Korean translation for Tutorial - JSON Compatible Encoder. PR [3152](https://github.com/tiangolo/fastapi/pull/3152) by [NEONKID](https://github.com/NEONKID).
* 🌐 Add Korean translation for Tutorial - Path Parameters and Numeric Validations. PR [2432](https://github.com/tiangolo/fastapi/pull/2432) by [hard-coders](https://github.com/hard-coders).
* 🌐 Add Korean translation for `docs/ko/docs/deployment/versions.md`. PR [4121](https://github.com/tiangolo/fastapi/pull/4121) by [DevDae](https://github.com/DevDae).
* 🌐 Fix Korean translation for `docs/ko/docs/tutorial/index.md`. PR [4193](https://github.com/tiangolo/fastapi/pull/4193) by [kimjaeyoonn](https://github.com/kimjaeyoonn).
* 🔧 Add CryptAPI sponsor. PR [4264](https://github.com/tiangolo/fastapi/pull/4264) by [tiangolo](https://github.com/tiangolo).
* 📝 Update `docs/tutorial/dependencies/classes-as-dependencies`: Add type of query parameters in a description of `Classes as dependencies`. PR [4015](https://github.com/tiangolo/fastapi/pull/4015) by [0417taehyun](https://github.com/0417taehyun).
* 🌐 Add French translation for Tutorial - First steps. PR [3455](https://github.com/tiangolo/fastapi/pull/3455) by [Smlep](https://github.com/Smlep).
* 🌐 Add French translation for `docs/tutorial/path-params.md`. PR [3548](https://github.com/tiangolo/fastapi/pull/3548) by [Smlep](https://github.com/Smlep).
* 🌐 Add French translation for `docs/tutorial/query-params.md`. PR [3556](https://github.com/tiangolo/fastapi/pull/3556) by [Smlep](https://github.com/Smlep).
* 🌐 Add Turkish translation for `docs/python-types.md`. PR [3926](https://github.com/tiangolo/fastapi/pull/3926) by [BilalAlpaslan](https://github.com/BilalAlpaslan).

Internal

* 👥 Update FastAPI People. PR [4274](https://github.com/tiangolo/fastapi/pull/4274) by [github-actions[bot]](https://github.com/apps/github-actions).

0.70.0

This release just upgrades Starlette to the latest version, `0.16.0`, which includes several bug fixes and some small breaking changes.

These last **three consecutive releases** are independent so that you can **migrate gradually**:

* First to FastAPI `0.68.2`, with no breaking changes, but upgrading all the sub-dependencies.
* Next to FastAPI `0.69.0`, which upgrades Starlette to `0.15.0`, with AnyIO support, and a higher chance of having breaking changes in your code.
* Finally to FastAPI `0.70.0`, just upgrading Starlette to the latest version `0.16.0` with additional bug fixes.

This way, in case there was a breaking change for your code in one of the releases, you can still benefit from the previous upgrades. ✨

Breaking Changes - Upgrade

* ⬆️ Upgrade Starlette to 0.16.0. PR [4016](https://github.com/tiangolo/fastapi/pull/4016) by [tiangolo](https://github.com/tiangolo).

Also upgrades the ranges of optional dependencies:

* `"jinja2 >=2.11.2,<4.0.0"`
* `"itsdangerous >=1.1.0,<3.0.0"`

0.69.0

Breaking Changes - Upgrade

This release adds support for [Trio](https://trio.readthedocs.io/en/stable/). ✨

It upgrades the version of Starlette to `0.15.0`, now based on [AnyIO](https://anyio.readthedocs.io/en/stable/), and the internal async components in **FastAPI** are now based on AnyIO as well, making it compatible with both **asyncio** and **Trio**.

You can read the docs about running [FastAPI with Trio using Hypercorn](https://fastapi.tiangolo.com/deployment/manually/#hypercorn-with-trio).

This release also removes `graphene` as an optional dependency for GraphQL. If you need to work with GraphQL, the recommended library now is [Strawberry](https://strawberry.rocks/). You can read the new [FastAPI with GraphQL docs](https://fastapi.tiangolo.com/advanced/graphql/).

Features

* ✨ Add support for Trio via AnyIO, upgrading Starlette to `0.15.0`. PR [3372](https://github.com/tiangolo/fastapi/pull/3372) by [graingert](https://github.com/graingert).
* ➖ Remove `graphene` as an optional dependency. PR [4007](https://github.com/tiangolo/fastapi/pull/4007) by [tiangolo](https://github.com/tiangolo).

Docs

* 📝 Add docs for using Trio with Hypercorn. PR [4014](https://github.com/tiangolo/fastapi/pull/4014) by [tiangolo](https://github.com/tiangolo).
* ✏ Fix typos in Deployment Guide. PR [3975](https://github.com/tiangolo/fastapi/pull/3975) by [ghandic](https://github.com/ghandic).
* 📝 Update docs with pip install calls when using extras with brackets, use quotes for compatibility with Zsh. PR [3131](https://github.com/tiangolo/fastapi/pull/3131) by [tomwei7](https://github.com/tomwei7).
* 📝 Add external link to article: Deploying ML Models as API Using FastAPI and Heroku. PR [3904](https://github.com/tiangolo/fastapi/pull/3904) by [kaustubhgupta](https://github.com/kaustubhgupta).
* ✏ Fix typo in file paths in `docs/en/docs/contributing.md`. PR [3752](https://github.com/tiangolo/fastapi/pull/3752) by [NinaHwang](https://github.com/NinaHwang).
* ✏ Fix a typo in `docs/en/docs/advanced/path-operation-advanced-configuration.md` and `docs/en/docs/release-notes.md`. PR [3750](https://github.com/tiangolo/fastapi/pull/3750) by [saintmalik](https://github.com/saintmalik).
* ✏️ Add a missing comma in the security tutorial. PR [3564](https://github.com/tiangolo/fastapi/pull/3564) by [jalvaradosegura](https://github.com/jalvaradosegura).
* ✏ Fix typo in `docs/en/docs/help-fastapi.md`. PR [3760](https://github.com/tiangolo/fastapi/pull/3760) by [jaystone776](https://github.com/jaystone776).
* ✏ Fix typo about file path in `docs/en/docs/tutorial/bigger-applications.md`. PR [3285](https://github.com/tiangolo/fastapi/pull/3285) by [HolyDorus](https://github.com/HolyDorus).
* ✏ Re-word to clarify test client in `docs/en/docs/tutorial/testing.md`. PR [3382](https://github.com/tiangolo/fastapi/pull/3382) by [Bharat123rox](https://github.com/Bharat123rox).
* 📝  Fix incorrect highlighted code. PR [3325](https://github.com/tiangolo/fastapi/pull/3325) by [paxcodes](https://github.com/paxcodes).
* 📝 Add external link to article: How-to deploy FastAPI app to Heroku. PR [3241](https://github.com/tiangolo/fastapi/pull/3241) by [Jarmos-san](https://github.com/Jarmos-san).
* ✏ Fix typo (mistranslation) in `docs/en/docs/advanced/templates.md`. PR [3211](https://github.com/tiangolo/fastapi/pull/3211) by [oerpli](https://github.com/oerpli).
* 📝 Remove note about (now supported) feature from Swagger UI in `docs/en/docs/tutorial/request-files.md`. PR [2803](https://github.com/tiangolo/fastapi/pull/2803) by [gsganden](https://github.com/gsganden).
* ✏ Fix typo re-word in `docs/tutorial/handling-errors.md`. PR [2700](https://github.com/tiangolo/fastapi/pull/2700) by [graue70](https://github.com/graue70).

Translations

* 🌐 Initialize Azerbaijani translations. PR [3941](https://github.com/tiangolo/fastapi/pull/3941) by [madatbay](https://github.com/madatbay).
* 🌐 Add Turkish translation for `docs/fastapi-people.md`. PR [3848](https://github.com/tiangolo/fastapi/pull/3848) by [BilalAlpaslan](https://github.com/BilalAlpaslan).

Internal

* 📝 Add supported Python versions badge. PR [2794](https://github.com/tiangolo/fastapi/pull/2794) by [hramezani](https://github.com/hramezani).
* ✏ Fix link in Japanese docs for `docs/ja/docs/deployment/docker.md`. PR [3245](https://github.com/tiangolo/fastapi/pull/3245) by [utamori](https://github.com/utamori).
* 🔧 Correct DeprecationWarning config and comment in pytest settings. PR [4008](https://github.com/tiangolo/fastapi/pull/4008) by [graingert](https://github.com/graingert).
* 🔧 Swap light/dark theme button icon. PR [3246](https://github.com/tiangolo/fastapi/pull/3246) by [eddsalkield](https://github.com/eddsalkield).
* 🔧 Lint only in Python 3.7 and above. PR [4006](https://github.com/tiangolo/fastapi/pull/4006) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add GitHub Action notify-translations config for Azerbaijani. PR [3995](https://github.com/tiangolo/fastapi/pull/3995) by [tiangolo](https://github.com/tiangolo).

0.68.2

This release has **no breaking changes**. 🎉

It upgrades the version ranges of sub-dependencies to allow applications using FastAPI to easily upgrade them.

Soon there will be a new FastAPI release upgrading Starlette to take advantage of recent improvements, but as that has a higher chance of having breaking changes, it will be in a separate release.

Features

* ⬆Increase supported version of aiofiles to suppress warnings. PR [2899](https://github.com/tiangolo/fastapi/pull/2899) by [SnkSynthesis](https://github.com/SnkSynthesis).
* ➖ Do not require backports in Python >= 3.7. PR [1880](https://github.com/tiangolo/fastapi/pull/1880) by [FFY00](https://github.com/FFY00).
* ⬆ Upgrade required Python version to >= 3.6.1, needed by typing.Deque, used by Pydantic. PR [2733](https://github.com/tiangolo/fastapi/pull/2733) by [hukkin](https://github.com/hukkin).
* ⬆️ Bump Uvicorn max range to 0.15.0. PR [3345](https://github.com/tiangolo/fastapi/pull/3345) by [Kludex](https://github.com/Kludex).

Docs

* 📝 Update GraphQL docs, recommend Strawberry. PR [3981](https://github.com/tiangolo/fastapi/pull/3981) by [tiangolo](https://github.com/tiangolo).
* 📝 Re-write and extend Deployment guide: Concepts, Uvicorn, Gunicorn, Docker, Containers, Kubernetes. PR [3974](https://github.com/tiangolo/fastapi/pull/3974) by [tiangolo](https://github.com/tiangolo).
* 📝 Upgrade HTTPS guide with more explanations and diagrams. PR [3950](https://github.com/tiangolo/fastapi/pull/3950) by [tiangolo](https://github.com/tiangolo).

Translations

* 🌐 Add Turkish translation for `docs/features.md`. PR [1950](https://github.com/tiangolo/fastapi/pull/1950) by [ycd](https://github.com/ycd).
* 🌐 Add Turkish translation for `docs/benchmarks.md`. PR [2729](https://github.com/tiangolo/fastapi/pull/2729) by [Telomeraz](https://github.com/Telomeraz).
* 🌐 Add Turkish translation for `docs/index.md`. PR [1908](https://github.com/tiangolo/fastapi/pull/1908) by [ycd](https://github.com/ycd).
* 🌐 Add French translation for `docs/tutorial/body.md`. PR [3671](https://github.com/tiangolo/fastapi/pull/3671) by [Smlep](https://github.com/Smlep).
* 🌐 Add French translation for `deployment/docker.md`. PR [3694](https://github.com/tiangolo/fastapi/pull/3694) by [rjNemo](https://github.com/rjNemo).
* 🌐 Add Portuguese translation for `docs/tutorial/path-params.md`. PR [3664](https://github.com/tiangolo/fastapi/pull/3664) by [FelipeSilva93](https://github.com/FelipeSilva93).
* 🌐 Add Portuguese translation for `docs/deployment/https.md`. PR [3754](https://github.com/tiangolo/fastapi/pull/3754) by [lsglucas](https://github.com/lsglucas).
* 🌐 Add German translation for `docs/features.md`. PR [3699](https://github.com/tiangolo/fastapi/pull/3699) by [mawassk](https://github.com/mawassk).

Internal

* ✨ Update GitHub Action: notify-translations, to avoid a race conditions. PR [3989](https://github.com/tiangolo/fastapi/pull/3989) by [tiangolo](https://github.com/tiangolo).
* ⬆️ Upgrade development `autoflake`, supporting multi-line imports. PR [3988](https://github.com/tiangolo/fastapi/pull/3988) by [tiangolo](https://github.com/tiangolo).
* ⬆️ Increase dependency ranges for tests and docs: pytest-cov, pytest-asyncio, black, httpx, sqlalchemy, databases, mkdocs-markdownextradata-plugin. PR [3987](https://github.com/tiangolo/fastapi/pull/3987) by [tiangolo](https://github.com/tiangolo).
* 👥 Update FastAPI People. PR [3986](https://github.com/tiangolo/fastapi/pull/3986) by [github-actions[bot]](https://github.com/apps/github-actions).
* 💚 Fix badges in README and main page. PR [3979](https://github.com/tiangolo/fastapi/pull/3979) by [ghandic](https://github.com/ghandic).
* ⬆ Upgrade internal testing dependencies: mypy to version 0.910, add newly needed type packages. PR [3350](https://github.com/tiangolo/fastapi/pull/3350) by [ArcLightSlavik](https://github.com/ArcLightSlavik).
* ✨ Add Deepset Sponsorship. PR [3976](https://github.com/tiangolo/fastapi/pull/3976) by [tiangolo](https://github.com/tiangolo).
* 🎨 Tweak CSS styles for shell animations. PR [3888](https://github.com/tiangolo/fastapi/pull/3888) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add new Sponsor Calmcode.io. PR [3777](https://github.com/tiangolo/fastapi/pull/3777) by [tiangolo](https://github.com/tiangolo).

0.68.1

* ✨ Add support for `read_with_orm_mode`, to support [SQLModel](https://sqlmodel.tiangolo.com/) relationship attributes. PR [#3757](https://github.com/tiangolo/fastapi/pull/3757) by [tiangolo](https://github.com/tiangolo).

Translations

* 🌐 Add Portuguese translation of `docs/fastapi-people.md`. PR [3461](https://github.com/tiangolo/fastapi/pull/3461) by [ComicShrimp](https://github.com/ComicShrimp).
* 🌐 Add Chinese translation for `docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md`. PR [3492](https://github.com/tiangolo/fastapi/pull/3492) by [jaystone776](https://github.com/jaystone776).
* 🔧 Add new Translation tracking issues for German and Indonesian. PR [3718](https://github.com/tiangolo/fastapi/pull/3718) by [tiangolo](https://github.com/tiangolo).
* 🌐 Add Chinese translation for `docs/tutorial/dependencies/sub-dependencies.md`. PR [3491](https://github.com/tiangolo/fastapi/pull/3491) by [jaystone776](https://github.com/jaystone776).
* 🌐 Add Portuguese translation for `docs/advanced/index.md`. PR [3460](https://github.com/tiangolo/fastapi/pull/3460) by [ComicShrimp](https://github.com/ComicShrimp).
* 🌐 Portuguese translation of `docs/async.md`. PR [1330](https://github.com/tiangolo/fastapi/pull/1330) by [Serrones](https://github.com/Serrones).
* 🌐 Add French translation for `docs/async.md`. PR [3416](https://github.com/tiangolo/fastapi/pull/3416) by [Smlep](https://github.com/Smlep).

Internal

* ✨ Add GitHub Action: Notify Translations. PR [3715](https://github.com/tiangolo/fastapi/pull/3715) by [tiangolo](https://github.com/tiangolo).
* ✨ Update computation of FastAPI People and sponsors. PR [3714](https://github.com/tiangolo/fastapi/pull/3714) by [tiangolo](https://github.com/tiangolo).
* ✨ Enable recent Material for MkDocs Insiders features. PR [3710](https://github.com/tiangolo/fastapi/pull/3710) by [tiangolo](https://github.com/tiangolo).
* 🔥 Remove/clean extra imports from examples in docs for features. PR [3709](https://github.com/tiangolo/fastapi/pull/3709) by [tiangolo](https://github.com/tiangolo).
* ➕ Update docs library to include sources in Markdown. PR [3648](https://github.com/tiangolo/fastapi/pull/3648) by [tiangolo](https://github.com/tiangolo).
* ⬆ Enable tests for Python 3.9. PR [2298](https://github.com/tiangolo/fastapi/pull/2298) by [Kludex](https://github.com/Kludex).
* 👥 Update FastAPI People. PR [3642](https://github.com/tiangolo/fastapi/pull/3642) by [github-actions[bot]](https://github.com/apps/github-actions).

0.68.0

Features

* ✨ Add support for extensions and updates to the OpenAPI schema in each *path operation*. New docs: [FastAPI Path Operation Advanced Configuration - OpenAPI Extra](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#openapi-extra). Initial PR [1922](https://github.com/tiangolo/fastapi/pull/1922) by [edouardlp](https://github.com/edouardlp).
* ✨ Add additonal OpenAPI metadata parameters to `FastAPI` class, shown on the automatic API docs UI. New docs: [Metadata and Docs URLs](https://fastapi.tiangolo.com/tutorial/metadata/). Initial PR [#1812](https://github.com/tiangolo/fastapi/pull/1812) by [dkreeft](https://github.com/dkreeft).
* ✨ Add `description` parameter to all the security scheme classes, e.g. `APIKeyQuery(name="key", description="A very cool API key")`. PR [1757](https://github.com/tiangolo/fastapi/pull/1757) by [hylkepostma](https://github.com/hylkepostma).
* ✨ Update OpenAPI models, supporting recursive models and extensions. PR [3628](https://github.com/tiangolo/fastapi/pull/3628) by [tiangolo](https://github.com/tiangolo).
* ✨ Import and re-export data structures from Starlette, used by Request properties, on `fastapi.datastructures`. Initial PR [1872](https://github.com/tiangolo/fastapi/pull/1872) by [jamescurtin](https://github.com/jamescurtin).

Docs

* 📝 Update docs about async and response-model with more gender neutral language. PR [1869](https://github.com/tiangolo/fastapi/pull/1869) by [Edward-Knight](https://github.com/Edward-Knight).

Translations

* 🌐 Add Russian translation for `docs/python-types.md`. PR [3039](https://github.com/tiangolo/fastapi/pull/3039) by [dukkee](https://github.com/dukkee).
* 🌐 Add Chinese translation for `docs/tutorial/dependencies/index.md`. PR [3489](https://github.com/tiangolo/fastapi/pull/3489) by [jaystone776](https://github.com/jaystone776).
* 🌐 Add Russian translation for `docs/external-links.md`. PR [3036](https://github.com/tiangolo/fastapi/pull/3036) by [dukkee](https://github.com/dukkee).
* 🌐 Add Chinese translation for `docs/tutorial/dependencies/global-dependencies.md`. PR [3493](https://github.com/tiangolo/fastapi/pull/3493) by [jaystone776](https://github.com/jaystone776).
* 🌐 Add Portuguese translation for `docs/deployment/versions.md`. PR [3618](https://github.com/tiangolo/fastapi/pull/3618) by [lsglucas](https://github.com/lsglucas).
* 🌐 Add Japanese translation for `docs/tutorial/security/oauth2-jwt.md`. PR [3526](https://github.com/tiangolo/fastapi/pull/3526) by [sattosan](https://github.com/sattosan).

Internal

* ✅ Add  the `docs_src` directory to test coverage and update tests. Initial PR [1904](https://github.com/tiangolo/fastapi/pull/1904) by [Kludex](https://github.com/Kludex).
* 🔧 Add new GitHub templates with forms for new issues. PR [3612](https://github.com/tiangolo/fastapi/pull/3612) by [tiangolo](https://github.com/tiangolo).
* 📝 Add official FastAPI Twitter to docs: [fastapi](https://twitter.com/fastapi). PR [#3578](https://github.com/tiangolo/fastapi/pull/3578) by [tiangolo](https://github.com/tiangolo).

0.67.0

Features

* ✨ Add support for `dataclasses` in request bodies and `response_model`. New documentation: [Advanced User Guide - Using Dataclasses](https://fastapi.tiangolo.com/advanced/dataclasses/). PR [#3577](https://github.com/tiangolo/fastapi/pull/3577) by [tiangolo](https://github.com/tiangolo).
* ✨ Support `dataclasses` in responses. PR [3576](https://github.com/tiangolo/fastapi/pull/3576) by [tiangolo](https://github.com/tiangolo), continuation from initial PR [#2722](https://github.com/tiangolo/fastapi/pull/2722) by [amitlissack](https://github.com/amitlissack).

Docs

* 📝 Add external link: How to Create A Fake Certificate Authority And Generate TLS Certs for FastAPI. PR [2839](https://github.com/tiangolo/fastapi/pull/2839) by [aitoehigie](https://github.com/aitoehigie).
* ✏ Fix code highlighted line in: `body-nested-models.md`. PR [3463](https://github.com/tiangolo/fastapi/pull/3463) by [jaystone776](https://github.com/jaystone776).
* ✏ Fix typo in `body-nested-models.md`. PR [3462](https://github.com/tiangolo/fastapi/pull/3462) by [jaystone776](https://github.com/jaystone776).
* ✏ Fix typo "might me" -> "might be" in `docs/en/docs/tutorial/schema-extra-example.md`. PR [3362](https://github.com/tiangolo/fastapi/pull/3362) by [dbrakman](https://github.com/dbrakman).
* 📝 Add external link: Building simple E-Commerce with NuxtJS and FastAPI. PR [3271](https://github.com/tiangolo/fastapi/pull/3271) by [ShahriyarR](https://github.com/ShahriyarR).
* 📝 Add external link: Serve a machine learning model using Sklearn, FastAPI and Docker. PR [2974](https://github.com/tiangolo/fastapi/pull/2974) by [rodrigo-arenas](https://github.com/rodrigo-arenas).
* ✏️ Fix typo on docstring in datastructures file. PR [2887](https://github.com/tiangolo/fastapi/pull/2887) by [Kludex](https://github.com/Kludex).
* 📝 Add External Link: Deploy FastAPI on Ubuntu and Serve using Caddy 2 Web Server. PR [3572](https://github.com/tiangolo/fastapi/pull/3572) by [tiangolo](https://github.com/tiangolo).
* 📝 Add External Link, replaces 1898. PR [3571](https://github.com/tiangolo/fastapi/pull/3571) by [tiangolo](https://github.com/tiangolo).

Internal

* 🎨 Improve style for sponsors, add radius border. PR [2388](https://github.com/tiangolo/fastapi/pull/2388) by [Kludex](https://github.com/Kludex).
* 👷 Update GitHub Action latest-changes. PR [3574](https://github.com/tiangolo/fastapi/pull/3574) by [tiangolo](https://github.com/tiangolo).
* 👷 Update GitHub Action latest-changes. PR [3573](https://github.com/tiangolo/fastapi/pull/3573) by [tiangolo](https://github.com/tiangolo).
* 👷 Rename and clarify CI workflow job names. PR [3570](https://github.com/tiangolo/fastapi/pull/3570) by [tiangolo](https://github.com/tiangolo).
* 👷 Update GitHub Action latest-changes, strike 2 ⚾. PR [3575](https://github.com/tiangolo/fastapi/pull/3575) by [tiangolo](https://github.com/tiangolo).
* 🔧 Sort external links in docs to have the most recent at the top. PR [3568](https://github.com/tiangolo/fastapi/pull/3568) by [tiangolo](https://github.com/tiangolo).

0.66.1

Translations

* 🌐 Add basic setup for German translations. PR [3522](https://github.com/tiangolo/fastapi/pull/3522) by [0x4Dark](https://github.com/0x4Dark).
* 🌐 Add Portuguese translation for `docs/tutorial/security/index.md`. PR [3507](https://github.com/tiangolo/fastapi/pull/3507) by [oandersonmagalhaes](https://github.com/oandersonmagalhaes).
* 🌐 Add Portuguese translation for `docs/deployment/index.md`. PR [3337](https://github.com/tiangolo/fastapi/pull/3337) by [lsglucas](https://github.com/lsglucas).

Internal

* 🔧 Configure strict pytest options and update/refactor tests. Upgrade pytest to `>=6.2.4,<7.0.0` and pytest-cov to `>=2.12.0,<3.0.0`. Initial PR [2790](https://github.com/tiangolo/fastapi/pull/2790) by [graingert](https://github.com/graingert).
* ⬆️ Upgrade python-jose dependency to `>=3.3.0,<4.0.0` for tests. PR [3468](https://github.com/tiangolo/fastapi/pull/3468) by [tiangolo](https://github.com/tiangolo).

0.66.0

Features

* ✨ Allow setting the `response_class` to `RedirectResponse` or `FileResponse` and returning the URL from the function. New and updated docs are in the tutorial section **Custom Response - HTML, Stream, File, others**, in [RedirectResponse](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse) and in [FileResponse](https://fastapi.tiangolo.com/advanced/custom-response/#fileresponse). PR [3457](https://github.com/tiangolo/fastapi/pull/3457) by [tiangolo](https://github.com/tiangolo).

Fixes

* 🐛 Fix include/exclude for dicts in `jsonable_encoder`. PR [2016](https://github.com/tiangolo/fastapi/pull/2016) by [Rubikoid](https://github.com/Rubikoid).
* 🐛 Support custom OpenAPI / JSON Schema fields in the generated output OpenAPI. PR [1429](https://github.com/tiangolo/fastapi/pull/1429) by [jmagnusson](https://github.com/jmagnusson).

Translations

* 🌐 Add Spanish translation for `tutorial/query-params.md`. PR [2243](https://github.com/tiangolo/fastapi/pull/2243) by [mariacamilagl](https://github.com/mariacamilagl).
* 🌐 Add Spanish translation for `advanced/response-directly.md`. PR [1253](https://github.com/tiangolo/fastapi/pull/1253) by [jfunez](https://github.com/jfunez).
* 🌐 Add Spanish translation for `advanced/additional-status-codes.md`. PR [1252](https://github.com/tiangolo/fastapi/pull/1252) by [jfunez](https://github.com/jfunez).
* 🌐 Add Spanish translation for `advanced/path-operation-advanced-configuration.md`. PR [1251](https://github.com/tiangolo/fastapi/pull/1251) by [jfunez](https://github.com/jfunez).

0.65.3

Fixes

* ♻ Assume request bodies contain JSON when no Content-Type header is provided. This fixes a breaking change introduced by [0.65.2 with PR 2118](https://github.com/tiangolo/fastapi/pull/2118). It should allow upgrading FastAPI applications with clients that send JSON data without a `Content-Type` header. And there's still protection against CSRFs. PR [#3456](https://github.com/tiangolo/fastapi/pull/3456) by [tiangolo](https://github.com/tiangolo).

Translations

* 🌐 Initialize Indonesian translations. PR [3014](https://github.com/tiangolo/fastapi/pull/3014) by [pace-noge](https://github.com/pace-noge).
* 🌐 Add Spanish translation of Tutorial - Path Parameters. PR [2219](https://github.com/tiangolo/fastapi/pull/2219) by [mariacamilagl](https://github.com/mariacamilagl).
* 🌐 Add Spanish translation of Tutorial - First Steps. PR [2208](https://github.com/tiangolo/fastapi/pull/2208) by [mariacamilagl](https://github.com/mariacamilagl).
* 🌐 Portuguese translation of Tutorial - Body - Fields. PR [3420](https://github.com/tiangolo/fastapi/pull/3420) by [ComicShrimp](https://github.com/ComicShrimp).
* 🌐 Add Chinese translation for Tutorial - Request - Forms - and - Files. PR [3249](https://github.com/tiangolo/fastapi/pull/3249) by [jaystone776](https://github.com/jaystone776).
* 🌐 Add Chinese translation for Tutorial - Handling - Errors. PR [3299](https://github.com/tiangolo/fastapi/pull/3299) by [jaystone776](https://github.com/jaystone776).
* 🌐 Add Chinese translation for Tutorial - Form - Data. PR [3248](https://github.com/tiangolo/fastapi/pull/3248) by [jaystone776](https://github.com/jaystone776).
* 🌐 Add Chinese translation for Tutorial - Body - Updates. PR [3237](https://github.com/tiangolo/fastapi/pull/3237) by [jaystone776](https://github.com/jaystone776).
* 🌐 Add Chinese translation for FastAPI People. PR [3112](https://github.com/tiangolo/fastapi/pull/3112) by [hareru](https://github.com/hareru).
* 🌐 Add French translation for Project Generation. PR [3197](https://github.com/tiangolo/fastapi/pull/3197) by [Smlep](https://github.com/Smlep).
* 🌐 Add French translation for Python Types Intro. PR [3185](https://github.com/tiangolo/fastapi/pull/3185) by [Smlep](https://github.com/Smlep).
* 🌐 Add French translation for External Links. PR [3103](https://github.com/tiangolo/fastapi/pull/3103) by [Smlep](https://github.com/Smlep).
* 🌐 Add French translation for Alternatives, Inspiration and Comparisons. PR [3020](https://github.com/tiangolo/fastapi/pull/3020) by [rjNemo](https://github.com/rjNemo).
* 🌐 Fix Chinese translation code snippet mismatch in Tutorial - Python Types Intro. PR [2573](https://github.com/tiangolo/fastapi/pull/2573) by [BoYanZh](https://github.com/BoYanZh).
* 🌐 Add Portuguese translation for Development Contributing. PR [1364](https://github.com/tiangolo/fastapi/pull/1364) by [Serrones](https://github.com/Serrones).
* 🌐 Add Chinese translation for Tutorial - Request - Files. PR [3244](https://github.com/tiangolo/fastapi/pull/3244) by [jaystone776](https://github.com/jaystone776).

Internal

* 👥 Update FastAPI People. PR [3450](https://github.com/tiangolo/fastapi/pull/3450) by [github-actions[bot]](https://github.com/apps/github-actions).
* 👥 Update FastAPI People. PR [3319](https://github.com/tiangolo/fastapi/pull/3319) by [github-actions[bot]](https://github.com/apps/github-actions).
* ⬆ Upgrade docs development dependency on `typer-cli` to >=0.0.12 to fix conflicts. PR [3429](https://github.com/tiangolo/fastapi/pull/3429) by [tiangolo](https://github.com/tiangolo).

0.65.2

Security fixes

* 🔒 Check Content-Type request header before assuming JSON. Initial PR [2118](https://github.com/tiangolo/fastapi/pull/2118) by [patrickkwang](https://github.com/patrickkwang).

This change fixes a [CSRF](https://en.wikipedia.org/wiki/Cross-site_request_forgery) security vulnerability when using cookies for authentication in path operations with JSON payloads sent by browsers.

In versions lower than `0.65.2`, FastAPI would try to read the request payload as JSON even if the `content-type` header sent was not set to `application/json` or a compatible JSON media type (e.g. `application/geo+json`).

So, a request with a content type of `text/plain` containing JSON data would be accepted and the JSON data would be extracted.

But requests with content type `text/plain` are exempt from [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) preflights, for being considered [Simple requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests). So, the browser would execute them right away including cookies, and the text content could be a JSON string that would be parsed and accepted by the FastAPI application.

See [CVE-2021-32677](https://github.com/tiangolo/fastapi/security/advisories/GHSA-8h2j-cgx8-6xv7) for more details.

Thanks to [Dima Boger](https://twitter.com/b0g3r) for the security report! 🙇🔒

Internal

* 🔧 Update sponsors badge, course bundle. PR [3340](https://github.com/tiangolo/fastapi/pull/3340) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add new gold sponsor Jina 🎉. PR [3291](https://github.com/tiangolo/fastapi/pull/3291) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add new banner sponsor badge for FastAPI courses bundle. PR [3288](https://github.com/tiangolo/fastapi/pull/3288) by [tiangolo](https://github.com/tiangolo).
* 👷 Upgrade Issue Manager GitHub Action. PR [3236](https://github.com/tiangolo/fastapi/pull/3236) by [tiangolo](https://github.com/tiangolo).

0.65.1

Security fixes

* 📌 Upgrade pydantic pin, to handle security vulnerability [CVE-2021-29510](https://github.com/samuelcolvin/pydantic/security/advisories/GHSA-5jqp-qgf6-3pvh). PR [#3213](https://github.com/tiangolo/fastapi/pull/3213) by [tiangolo](https://github.com/tiangolo).

0.65.0

Breaking Changes - Upgrade

* ⬆️  Upgrade Starlette to `0.14.2`, including internal `UJSONResponse` migrated from Starlette. This includes several bug fixes and features from Starlette. PR [2335](https://github.com/tiangolo/fastapi/pull/2335) by [hanneskuettner](https://github.com/hanneskuettner).

Translations

* 🌐 Initialize new language Polish for translations. PR [3170](https://github.com/tiangolo/fastapi/pull/3170) by [neternefer](https://github.com/neternefer).

Internal

* 👷 Add GitHub Action cache to speed up CI installs. PR [3204](https://github.com/tiangolo/fastapi/pull/3204) by [tiangolo](https://github.com/tiangolo).
* ⬆️ Upgrade setup-python GitHub Action to v2. PR [3203](https://github.com/tiangolo/fastapi/pull/3203) by [tiangolo](https://github.com/tiangolo).
* 🐛 Fix docs script to generate a new translation language with `overrides` boilerplate. PR [3202](https://github.com/tiangolo/fastapi/pull/3202) by [tiangolo](https://github.com/tiangolo).
* ✨ Add new Deta banner badge with new sponsorship tier 🙇. PR [3194](https://github.com/tiangolo/fastapi/pull/3194) by [tiangolo](https://github.com/tiangolo).
* 👥 Update FastAPI People. PR [3189](https://github.com/tiangolo/fastapi/pull/3189) by [github-actions[bot]](https://github.com/apps/github-actions).
* 🔊 Update FastAPI People to allow better debugging. PR [3188](https://github.com/tiangolo/fastapi/pull/3188) by [tiangolo](https://github.com/tiangolo).

0.64.0

Features

* ✨ Add support for adding multiple `examples` in request bodies and path, query, cookie, and header params. New docs: [Declare Request Example Data](https://fastapi.tiangolo.com/tutorial/schema-extra-example/#body-with-multiple-examples). Initial PR [1267](https://github.com/tiangolo/fastapi/pull/1267) by [austinorr](https://github.com/austinorr).

Fixes

* 📌 Pin SQLAlchemy range for tests, as it doesn't use SemVer. PR [3001](https://github.com/tiangolo/fastapi/pull/3001) by [tiangolo](https://github.com/tiangolo).
* 🎨 Add newly required type annotations for mypy. PR [2882](https://github.com/tiangolo/fastapi/pull/2882) by [tiangolo](https://github.com/tiangolo).
* 🎨 Remove internal "type: ignore", now unnecessary. PR [2424](https://github.com/tiangolo/fastapi/pull/2424) by [AsakuraMizu](https://github.com/AsakuraMizu).

Docs

* 📝 Add link to article in Russian "FastAPI: знакомимся с фреймворком". PR [2564](https://github.com/tiangolo/fastapi/pull/2564) by [trkohler](https://github.com/trkohler).
* 📝 Add external link to blog post "Authenticate Your FastAPI App with Auth0". PR [2172](https://github.com/tiangolo/fastapi/pull/2172) by [dompatmore](https://github.com/dompatmore).
* 📝 Fix broken link to article: Machine learning model serving in Python using FastAPI and Streamlit. PR [2557](https://github.com/tiangolo/fastapi/pull/2557) by [davidefiocco](https://github.com/davidefiocco).
* 📝 Add FastAPI Medium Article: Deploy a dockerized FastAPI application to AWS. PR [2515](https://github.com/tiangolo/fastapi/pull/2515) by [vjanz](https://github.com/vjanz).
* ✏ Fix typo in Tutorial - Handling Errors. PR [2486](https://github.com/tiangolo/fastapi/pull/2486) by [johnthagen](https://github.com/johnthagen).
* ✏ Fix typo in Security OAuth2 scopes. PR [2407](https://github.com/tiangolo/fastapi/pull/2407) by [jugmac00](https://github.com/jugmac00).
* ✏ Fix typo/clarify docs for SQL (Relational) Databases. PR [2393](https://github.com/tiangolo/fastapi/pull/2393) by [kangni](https://github.com/kangni).
* 📝 Add external link to "FastAPI for Flask Users". PR [2280](https://github.com/tiangolo/fastapi/pull/2280) by [amitness](https://github.com/amitness).

Translations

* 🌐 Fix Chinese translation of Tutorial - Query Parameters, remove obsolete content. PR [3051](https://github.com/tiangolo/fastapi/pull/3051) by [louis70109](https://github.com/louis70109).
* 🌐 Add French translation for Tutorial - Background Tasks. PR [3098](https://github.com/tiangolo/fastapi/pull/3098) by [Smlep](https://github.com/Smlep).
* 🌐 Fix Korean translation for docs/ko/docs/index.md. PR [3159](https://github.com/tiangolo/fastapi/pull/3159) by [SueNaEunYang](https://github.com/SueNaEunYang).
* 🌐 Add Korean translation for Tutorial - Query Parameters. PR [2390](https://github.com/tiangolo/fastapi/pull/2390) by [hard-coders](https://github.com/hard-coders).
* 🌐 Add French translation for FastAPI People. PR [2232](https://github.com/tiangolo/fastapi/pull/2232) by [JulianMaurin](https://github.com/JulianMaurin).
* 🌐 Add Korean translation for Tutorial - Path Parameters. PR [2355](https://github.com/tiangolo/fastapi/pull/2355) by [hard-coders](https://github.com/hard-coders).
* 🌐 Add French translation for Features. PR [2157](https://github.com/tiangolo/fastapi/pull/2157) by [Jefidev](https://github.com/Jefidev).
* 👥 Update FastAPI People. PR [3031](https://github.com/tiangolo/fastapi/pull/3031) by [github-actions[bot]](https://github.com/apps/github-actions).
* 🌐 Add Chinese translation for Tutorial - Debugging. PR [2737](https://github.com/tiangolo/fastapi/pull/2737) by [blt232018](https://github.com/blt232018).
* 🌐 Add Chinese translation for Tutorial - Security - OAuth2 with Password (and hashing), Bearer with JWT tokens. PR [2642](https://github.com/tiangolo/fastapi/pull/2642) by [waynerv](https://github.com/waynerv).
* 🌐 Add Korean translation for Tutorial - Header Parameters. PR [2589](https://github.com/tiangolo/fastapi/pull/2589) by [mode9](https://github.com/mode9).
* 🌐 Add Chinese translation for Tutorial - Metadata and Docs URLs. PR [2559](https://github.com/tiangolo/fastapi/pull/2559) by [blt232018](https://github.com/blt232018).
* 🌐 Add Korean translation for Tutorial - First Steps. PR [2323](https://github.com/tiangolo/fastapi/pull/2323) by [hard-coders](https://github.com/hard-coders).
* 🌐 Add Chinese translation for Tutorial - CORS (Cross-Origin Resource Sharing). PR [2540](https://github.com/tiangolo/fastapi/pull/2540) by [blt232018](https://github.com/blt232018).
* 🌐 Add Chinese translation for Tutorial - Middleware. PR [2334](https://github.com/tiangolo/fastapi/pull/2334) by [lpdswing](https://github.com/lpdswing).
* 🌐 Add Korean translation for Tutorial - Intro. PR [2317](https://github.com/tiangolo/fastapi/pull/2317) by [hard-coders](https://github.com/hard-coders).
* 🌐 Add Chinese translation for Tutorial - Bigger Applications - Multiple Files. PR [2453](https://github.com/tiangolo/fastapi/pull/2453) by [waynerv](https://github.com/waynerv).
* 🌐 Add Chinese translation for Tutorial - Security - Security Intro. PR [2443](https://github.com/tiangolo/fastapi/pull/2443) by [waynerv](https://github.com/waynerv).
* 🌐 Add Chinese translation for Tutorial - Header Parameters. PR [2412](https://github.com/tiangolo/fastapi/pull/2412) by [maoyibo](https://github.com/maoyibo).
* 🌐 Add Chinese translation for Tutorial - Extra Data Types. PR [2410](https://github.com/tiangolo/fastapi/pull/2410) by [maoyibo](https://github.com/maoyibo).
* 🌐 Add Japanese translation for Deployment - Docker. PR [2312](https://github.com/tiangolo/fastapi/pull/2312) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Japanese translation for Deployment - Versions. PR [2310](https://github.com/tiangolo/fastapi/pull/2310) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Chinese translation for Tutorial - Cookie Parameters. PR [2261](https://github.com/tiangolo/fastapi/pull/2261) by [alicrazy1947](https://github.com/alicrazy1947).
* 🌐 Add Japanese translation for Tutorial - Static files. PR [2260](https://github.com/tiangolo/fastapi/pull/2260) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Japanese translation for Tutorial - Testing. PR [2259](https://github.com/tiangolo/fastapi/pull/2259) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Japanese translation for Tutorial - Debugging. PR [2256](https://github.com/tiangolo/fastapi/pull/2256) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Japanese translation for Tutorial - Middleware. PR [2255](https://github.com/tiangolo/fastapi/pull/2255) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Japanese translation for Concurrency and async / await. PR [2058](https://github.com/tiangolo/fastapi/pull/2058) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Chinese translation for Tutorial - Security - Simple OAuth2 with Password and Bearer. PR [2514](https://github.com/tiangolo/fastapi/pull/2514) by [waynerv](https://github.com/waynerv).
* 🌐 Add Japanese translation for Deployment - Deta. PR [2314](https://github.com/tiangolo/fastapi/pull/2314) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Chinese translation for Tutorial - Security - Get Current User. PR [2474](https://github.com/tiangolo/fastapi/pull/2474) by [waynerv](https://github.com/waynerv).
* 🌐 Add Japanese translation for Deployment - Manually. PR [2313](https://github.com/tiangolo/fastapi/pull/2313) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Japanese translation for Deployment - Intro. PR [2309](https://github.com/tiangolo/fastapi/pull/2309) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Japanese translation for FastAPI People. PR [2254](https://github.com/tiangolo/fastapi/pull/2254) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Japanese translation for Advanced - Path Operation Advanced Configuration. PR [2124](https://github.com/tiangolo/fastapi/pull/2124) by [Attsun1031](https://github.com/Attsun1031).
* 🌐 Add Japanese translation for External Links. PR [2070](https://github.com/tiangolo/fastapi/pull/2070) by [tokusumi](https://github.com/tokusumi).
* 🌐 Add Japanese translation for Tutorial - Body - Updates. PR [1956](https://github.com/tiangolo/fastapi/pull/1956) by [SwftAlpc](https://github.com/SwftAlpc).
* 🌐 Add Japanese translation for Tutorial - Form Data. PR [1943](https://github.com/tiangolo/fastapi/pull/1943) by [SwftAlpc](https://github.com/SwftAlpc).
* 🌐 Add Japanese translation for Tutorial - Cookie Parameters. PR [1933](https://github.com/tiangolo/fastapi/pull/1933) by [SwftAlpc](https://github.com/SwftAlpc).

Internal

* 🔧 Update top banner, point to newsletter. PR [3003](https://github.com/tiangolo/fastapi/pull/3003) by [tiangolo](https://github.com/tiangolo).
* 🔧 Disable sponsor WeTransfer. PR [3002](https://github.com/tiangolo/fastapi/pull/3002) by [tiangolo](https://github.com/tiangolo).
* 👥 Update FastAPI People. PR [2880](https://github.com/tiangolo/fastapi/pull/2880) by [github-actions[bot]](https://github.com/apps/github-actions).
* 👥 Update FastAPI People. PR [2739](https://github.com/tiangolo/fastapi/pull/2739) by [github-actions[bot]](https://github.com/apps/github-actions).
* 🔧 Add new Gold Sponsor Talk Python 🎉. PR [2673](https://github.com/tiangolo/fastapi/pull/2673) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add new Gold Sponsor vim.so 🎉. PR [2669](https://github.com/tiangolo/fastapi/pull/2669) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add FastAPI user survey banner. PR [2623](https://github.com/tiangolo/fastapi/pull/2623) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add new Bronze Sponsor(s) 🥉🎉. PR [2622](https://github.com/tiangolo/fastapi/pull/2622) by [tiangolo](https://github.com/tiangolo).
* 📝 Update social links: add Discord, fix GitHub. PR [2621](https://github.com/tiangolo/fastapi/pull/2621) by [tiangolo](https://github.com/tiangolo).
* 🔧 Update FastAPI People GitHub Sponsors order. PR [2620](https://github.com/tiangolo/fastapi/pull/2620) by [tiangolo](https://github.com/tiangolo).
* 🔧 Update InvestSuite sponsor data. PR [2608](https://github.com/tiangolo/fastapi/pull/2608) by [tiangolo](https://github.com/tiangolo).
* 👥 Update FastAPI People. PR [2590](https://github.com/tiangolo/fastapi/pull/2590) by [github-actions[bot]](https://github.com/apps/github-actions).

0.63.0

Features

* ✨ Improve type annotations, add support for mypy --strict, internally and for external packages. PR [2547](https://github.com/tiangolo/fastapi/pull/2547) by [tiangolo](https://github.com/tiangolo).

Breaking changes

* ⬆️ Upgrade Uvicorn when installing `fastapi[all]` to the latest version including `uvloop`, the new range is `uvicorn[standard] >=0.12.0,<0.14.0`. PR [2548](https://github.com/tiangolo/fastapi/pull/2548) by [tiangolo](https://github.com/tiangolo).

Fixes

* 🐛 PR [2547](https://github.com/tiangolo/fastapi/pull/2547) (read above) also fixes some false-positive mypy errors with `callbacks` parameters and when using the `OAuth2` class.

Docs

* 📝 Update Uvicorn installation instructions to use uvicorn[standard] (includes uvloop). PR [2543](https://github.com/tiangolo/fastapi/pull/2543) by [tiangolo](https://github.com/tiangolo).
* 📝 Update title for Deta tutorial. PR [2466](https://github.com/tiangolo/fastapi/pull/2466) by [tiangolo](https://github.com/tiangolo).
* 👥 Update FastAPI People. PR [2454](https://github.com/tiangolo/fastapi/pull/2454) by [github-actions[bot]](https://github.com/apps/github-actions).

Translations

* 🌐 Add docs lang selector widget. PR [2542](https://github.com/tiangolo/fastapi/pull/2542) by [tiangolo](https://github.com/tiangolo).
* 🌐 Add Chinese translation for Tutorial - Response Status Code. PR [2442](https://github.com/tiangolo/fastapi/pull/2442) by [waynerv](https://github.com/waynerv).
* 🌐 Start translation of the documentation for the Albanian language. PR [2516](https://github.com/tiangolo/fastapi/pull/2516) by [vjanz](https://github.com/vjanz).
* 🌐 Add Chinese translation for Tutorial - Extra Models. PR [2416](https://github.com/tiangolo/fastapi/pull/2416) by [waynerv](https://github.com/waynerv).
* 🌐 Add Chinese translation for Tutorial - Response Model. PR [2414](https://github.com/tiangolo/fastapi/pull/2414) by [waynerv](https://github.com/waynerv).
* 🌐 Add Chinese translation for Tutorial - Schema Extra Example. PR [2411](https://github.com/tiangolo/fastapi/pull/2411) by [maoyibo](https://github.com/maoyibo).
* 🌐 Add Korean translation for Index. PR [2192](https://github.com/tiangolo/fastapi/pull/2192) by [hard-coders](https://github.com/hard-coders).
* 🌐 Add Japanese translation for Advanced User Guide - Additional Status Codes. PR [2145](https://github.com/tiangolo/fastapi/pull/2145) by [Attsun1031](https://github.com/Attsun1031).

Internal

* 🐛 Fix docs overrides directory for translations. PR [2541](https://github.com/tiangolo/fastapi/pull/2541) by [tiangolo](https://github.com/tiangolo).
* ➖ Remove Typer as a docs building dependency (covered by typer-cli) to fix pip resolver conflicts. PR [2539](https://github.com/tiangolo/fastapi/pull/2539) by [tiangolo](https://github.com/tiangolo).
* ✨ Add newsletter: FastAPI and friends. PR [2509](https://github.com/tiangolo/fastapi/pull/2509) by [tiangolo](https://github.com/tiangolo).
* ✨ Add new Gold Sponsor: InvestSuite 🎉. PR [2508](https://github.com/tiangolo/fastapi/pull/2508) by [tiangolo](https://github.com/tiangolo).
* 🔧 Add issue template configs. PR [2476](https://github.com/tiangolo/fastapi/pull/2476) by [tiangolo](https://github.com/tiangolo).

0.62.0

Features

* ✨ Add support for shared/top-level parameters (dependencies, tags, etc). PR [2434](https://github.com/tiangolo/fastapi/pull/2434) by [tiangolo](https://github.com/tiangolo).

Up to now, for several options, the only way to apply them to a group of *path operations* was in `include_router`. That works well, but the call to `app.include_router()` or `router.include_router()` is normally done in another file.

That means that, for example, to apply authentication to all the *path operations* in a router it would end up being done in a different file, instead of keeping related logic together.

Setting options in `include_router` still makes sense in some cases, for example, to override or increase configurations from a third party router included in an app. But in a router that is part of a bigger application, it would probably make more sense to add those settings when creating the `APIRouter`.

**In `FastAPI`**

This allows setting the (mostly new) parameters (additionally to the already existing parameters):

* `default_response_class`: updated to handle defaults in `APIRouter` and `include_router`.
* `dependencies`: to include ✨ top-level dependencies ✨ that apply to the whole application. E.g. to add global authentication.
* `callbacks`: OpenAPI callbacks that apply to all the *path operations*.
* `deprecated`: to mark all the *path operations* as deprecated. 🤷
* `include_in_schema`: to allow excluding all the *path operations* from the OpenAPI schema.
* `responses`: OpenAPI responses that apply to all the *path operations*.

For example:

Python
from fastapi import FastAPI, Depends


async def some_dependency():
 return


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


**In `APIRouter`**

This allows setting the (mostly new) parameters (additionally to the already existing parameters):

* `default_response_class`: updated to handle defaults in `APIRouter` and `include_router`. For example, it's not needed to set it explicitly when [creating callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).
* `dependencies`: to include ✨ router-level dependencies ✨ that apply to all the *path operations* in a router. Up to now, this was only possible with `include_router`.
* `callbacks`: OpenAPI callbacks that apply to all the *path operations* in this router.
* `deprecated`: to mark all the *path operations* in a router as deprecated.
* `include_in_schema`: to allow excluding all the *path operations* in a router from the OpenAPI schema.
* `responses`: OpenAPI responses that apply to all the *path operations* in a router.
* `prefix`: to set the path prefix for a router. Up to now, this was only possible when calling `include_router`.
* `tags`: OpenAPI tags to apply to all the *path operations* in this router.

For example:

Python
from fastapi import APIRouter, Depends


async def some_dependency():
 return


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


**In `include_router`**

Most of these settings are now supported in `APIRouter`, which normally lives closer to the related code, so it is recommended to use `APIRouter` when possible.

But `include_router` is still useful to, for example, adding options (like `dependencies`, `prefix`, and `tags`) when including a third party router, or a generic router that is shared between several projects.

This PR allows setting the (mostly new) parameters (additionally to the already existing parameters):

* `default_response_class`: updated to handle defaults in `APIRouter` and `FastAPI`.
* `deprecated`: to mark all the *path operations* in a router as deprecated in OpenAPI.
* `include_in_schema`: to allow disabling all the *path operations* from showing in the OpenAPI schema.
* `callbacks`: OpenAPI callbacks that apply to all the *path operations* in this router.

Note: all the previous parameters are still there, so it's still possible to declare `dependencies` in `include_router`.

Breaking Changes

* PR [2434](https://github.com/tiangolo/fastapi/pull/2434) includes several improvements that shouldn't affect normal use cases, but could affect in advanced scenarios:
 * If you are testing the generated OpenAPI (you shouldn't, FastAPI already tests it extensively for you): the order for `tags` in `include_router` and *path operations* was updated for consistency, but it's a simple order change.
 * If you have advanced custom logic to access each route's `route.response_class`, or the `router.default_response_class`, or the `app.default_response_class`: the default value for `response_class` in `APIRoute` and for `default_response_class` in `APIRouter` and `FastAPI` is now a `DefaultPlaceholder` used internally to handle and solve default values and overrides. The actual response class inside the `DefaultPlaceholder` is available at `route.response_class.value`.

Docs

* PR [2434](https://github.com/tiangolo/fastapi/pull/2434) (above) includes new or updated docs:
 * <a href="https://fastapi.tiangolo.com/advanced/openapi-callbacks/" class="external-link" target="_blank">Advanced User Guide - OpenAPI Callbacks</a>.
 * <a href="https://fastapi.tiangolo.com/tutorial/bigger-applications/" class="external-link" target="_blank">Tutorial - Bigger Applications</a>.
 * <a href="https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/" class="external-link" target="_blank">Tutorial - Dependencies - Dependencies in path operation decorators</a>.
 * <a href="https://fastapi.tiangolo.com/tutorial/dependencies/global-dependencies/" class="external-link" target="_blank">Tutorial - Dependencies - Global Dependencies</a>.

* 📝 Add FastAPI monitoring blog post to External Links. PR [2324](https://github.com/tiangolo/fastapi/pull/2324) by [louisguitton](https://github.com/louisguitton).
* ✏️ Fix typo in Deta tutorial. PR [2320](https://github.com/tiangolo/fastapi/pull/2320) by [tiangolo](https://github.com/tiangolo).
* ✨ Add Discord chat. PR [2322](https://github.com/tiangolo/fastapi/pull/2322) by [tiangolo](https://github.com/tiangolo).
* 📝 Fix image links for sponsors. PR [2304](https://github.com/tiangolo/fastapi/pull/2304) by [tiangolo](https://github.com/tiangolo).

Translations

* 🌐 Add Japanese translation for Advanced - Custom Response. PR [2193](https://github.com/tiangolo/fastapi/pull/2193) by [Attsun1031](https://github.com/Attsun1031).
* 🌐 Add Chinese translation for Benchmarks. PR [2119](https://github.com/tiangolo/fastapi/pull/2119) by [spaceack](https://github.com/spaceack).
* 🌐 Add Chinese translation for Tutorial - Body - Nested Models. PR [1609](https://github.com/tiangolo/fastapi/pull/1609) by [waynerv](https://github.com/waynerv).
* 🌐 Add Chinese translation for Advanced - Custom Response. PR [1459](https://github.com/tiangolo/fastapi/pull/1459) by [RunningIkkyu](https://github.com/RunningIkkyu).
* 🌐 Add Chinese translation for Advanced - Return a Response Directly. PR [1452](https://github.com/tiangolo/fastapi/pull/1452) by [RunningIkkyu](https://github.com/RunningIkkyu).
* 🌐 Add Chinese translation for Advanced - Additional Status Codes. PR [1451](https://github.com/tiangolo/fastapi/pull/1451) by [RunningIkkyu](https://github.com/RunningIkkyu).
* 🌐 Add Chinese translation for Advanced - Path Operation Advanced Configuration. PR [1447](https://github.com/tiangolo/fastapi/pull/1447) by [RunningIkkyu](https://github.com/RunningIkkyu).
* 🌐 Add Chinese translation for Advanced User Guide - Intro. PR [1445](https://github.com/tiangolo/fastapi/pull/1445) by [RunningIkkyu](https://github.com/RunningIkkyu).

Internal

* 🔧 Update TestDriven link to course in sponsors section. PR [2435](https://github.com/tiangolo/fastapi/pull/2435) by [tiangolo](https://github.com/tiangolo).
* 🍱 Update sponsor logos. PR [2418](https://github.com/tiangolo/fastapi/pull/2418) by [tiangolo](https://github.com/tiangolo).
* 💚 Fix disabling install of Material for MkDocs Insiders in forks, strike 1 ⚾. PR [2340](https://github.com/tiangolo/fastapi/pull/2340) by [tiangolo](https://github.com/tiangolo).
* 🐛 Fix disabling Material for MkDocs Insiders install in forks. PR [2339](https://github.com/tiangolo/fastapi/pull/2339) by [tiangolo](https://github.com/tiangolo).
* ✨ Add silver sponsor WeTransfer. PR [2338](https://github.com/tiangolo/fastapi/pull/2338) by [tiangolo](https://github.com/tiangolo).
* ✨ Set up and enable Material for MkDocs Insiders for the docs. PR [2325](https://github.com/tiangolo/fastapi/pull/2325) by [tiangolo](https://github.com/tiangolo).

0.61.2

Fixes

* 📌 Relax Swagger UI version pin. PR [2089](https://github.com/tiangolo/fastapi/pull/2089) by [jmriebold](https://github.com/jmriebold).
* 🐛 Fix bug overriding custom HTTPException and RequestValidationError from exception_handlers. PR [1924](https://github.com/tiangolo/fastapi/pull/1924) by [uriyyo](https://github.com/uriyyo).
* ✏️ Fix typo on dependencies utils and cleanup unused variable. PR [1912](https://github.com/tiangolo/fastapi/pull/1912) by [Kludex](https://github.com/Kludex).

Docs

* ✏️  Fix typo in Tutorial - Path Parameters. PR [2231](https://github.com/tiangolo/fastapi/pull/2231) by [mariacamilagl](https://github.com/mariacamilagl).
* ✏ Fix a stylistic error in docs. PR [2206](https://github.com/tiangolo/fastapi/pull/2206) by [ddobrinskiy](https://github.com/ddobrinskiy).
* ✏ Fix capitalizaiton typo in docs. PR [2204](https://github.com/tiangolo/fastapi/pull/2204) by [imba-tjd](https://github.com/imba-tjd).
* ✏ Fix typo in docs. PR [2179](https://github.com/tiangolo/fastapi/pull/2179) by [ammarasmro](https://github.com/ammarasmro).
* 📝 Update/fix links in docs to use HTTPS. PR [2165](https://github.com/tiangolo/fastapi/pull/2165) by [imba-tjd](https://github.com/imba-tjd).
* ✏ Fix typos and add rewording in docs. PR [2159](https://github.com/tiangolo/fastapi/pull/2159) by [nukopy](https://github.com/nukopy).
* 📝 Fix code consistency in examples for Tutorial - User Guide - Path Parameters. PR [2158](https://github.com/tiangolo/fastapi/pull/2158) by [nukopy](https://github.com/nukopy).
* 📝 Fix renamed parameter `content_type` typo. PR [2135](https://github.com/tiangolo/fastapi/pull/2135) by [TeoZosa](https://github.com/TeoZosa).
* ✏ Fix minor typos in docs. PR [2122](https://github.com/tiangolo/fastapi/pull/2122) by [TeoZosa](https://github.com/TeoZosa).
* ✏ Fix typos in docs and source examples. PR [2102](https://github.com/tiangolo/fastapi/pull/2102) by [AdrianDeAnda](https://github.com/AdrianDeAnda).
* ✏ Fix incorrect Celery URLs in docs. PR [2100](https://github.com/tiangolo/fastapi/pull/2100) by [CircleOnCircles](https://github.com/CircleOnCircles).
* 📝 Simplify intro to Python Types, all currently supported Python versions include type hints 🎉. PR [2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant