FastAPI Versions Save

FastAPI framework, high performance, easy to learn, fast to code, ready for production

0.104.0

6 months ago

Features

Upgrades

  • ⬆️ Drop support for Python 3.7, require Python 3.8 or above. PR #10442 by @tiangolo.

Internal

0.103.2

7 months ago

Refactors

  • ⬆️ Upgrade compatibility with Pydantic v2.4, new renamed functions and JSON Schema input/output models with default values. PR #10344 by @tiangolo.

Translations

  • 🌐 Add Ukrainian translation for docs/uk/docs/tutorial/extra-data-types.md. PR #10132 by @ArtemKhymenko.
  • 🌐 Fix typos in French translations for 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.
  • 🌐 Add Chinese translation for docs/zh/docs/async.md. PR #5591 by @mkdir700.
  • 🌐 Update Chinese translation for docs/tutorial/security/simple-oauth2.md. PR #3844 by @jaystone776.
  • 🌐 Add Korean translation for docs/ko/docs/deployment/cloud.md. PR #10191 by @Sion99.
  • 🌐 Add Japanese translation for docs/ja/docs/deployment/https.md. PR #10298 by @tamtam-fitness.
  • 🌐 Fix typo in Russian translation for docs/ru/docs/tutorial/body-fields.md. PR #10224 by @AlertRED.
  • 🌐 Add Polish translation for docs/pl/docs/help-fastapi.md. PR #10121 by @romabozhanovgithub.
  • 🌐 Add Russian translation for docs/ru/docs/tutorial/header-params.md. PR #10226 by @AlertRED.
  • 🌐 Add Chinese translation for docs/zh/docs/deployment/versions.md. PR #10276 by @xzmeng.

Internal

0.103.1

7 months ago

Fixes

  • 📌 Pin AnyIO to < 4.0.0 to handle an incompatibility while upgrading to Starlette 0.31.1. PR #10194 by @tiangolo.

Docs

  • ✏️ Fix validation parameter name in docs, from regex to pattern. PR #10085 by @pablodorrio.
  • ✏️ Fix indent format in docs/en/docs/deployment/server-workers.md. PR #10066 by @tamtam-fitness.
  • ✏️ Fix Pydantic examples in tutorial for Python types. PR #9961 by @rahulsalgare.
  • ✏️ Fix link to Pydantic docs in docs/en/docs/tutorial/extra-data-types.md. PR #10155 by @hasnatsajid.
  • ✏️ Fix typo in docs/en/docs/tutorial/handling-errors.md. PR #10170 by @poupapaa.
  • ✏️ Fix typo in docs/en/docs/tutorial/dependencies/dependencies-in-path-operation-decorators.md. PR #10172 by @ragul-kachiappan.

Translations

  • 🌐 Remove duplicate line in translation for docs/pt/docs/tutorial/path-params.md. PR #10126 by @LecoOliveira.
  • 🌐 Add Yoruba translation for docs/yo/docs/index.md. PR #10033 by @AfolabiOlaoluwa.
  • 🌐 Add Ukrainian translation for docs/uk/docs/python-types.md. PR #10080 by @rostik1410.
  • 🌐 Add Vietnamese translations for docs/vi/docs/tutorial/first-steps.md and docs/vi/docs/tutorial/index.md. PR #10088 by @magiskboy.
  • 🌐 Add Ukrainian translation for docs/uk/docs/alternatives.md. PR #10060 by @whysage.
  • 🌐 Add Ukrainian translation for docs/uk/docs/tutorial/index.md. PR #10079 by @rostik1410.
  • ✏️ Fix typos in docs/en/docs/how-to/separate-openapi-schemas.md and docs/en/docs/tutorial/schema-extra-example.md. PR #10189 by @xzmeng.
  • 🌐 Add Chinese translation for docs/zh/docs/advanced/generate-clients.md. PR #9883 by @funny-cat-happy.

Refactors

  • ✏️ Fix typos in comment in fastapi/applications.py. PR #10045 by @AhsanSheraz.
  • ✅ Add missing test for OpenAPI examples, it was missing in coverage. PR #10188 by @tiangolo.

Internal

0.103.0

8 months ago

Features

Docs

  • 📝 Add note to docs about Separate Input and Output Schemas with FastAPI version. PR #10150 by @tiangolo.

0.102.0

8 months ago

Features

Refactors

Docs

  • 📝 Add new docs section, How To - Recipes, move docs that don't have to be read by everyone to How To. PR #10114 by @tiangolo.
  • 📝 Update Advanced docs, add links to sponsor courses. PR #10113 by @tiangolo.
  • 📝 Update docs for generating clients. PR #10112 by @tiangolo.
  • 📝 Tweak MkDocs and add redirects. PR #10111 by @tiangolo.
  • 📝 Restructure docs for cloud providers, include links to sponsors. PR #10110 by @tiangolo.

Internal

0.101.1

8 months ago

Fixes

  • ✨ Add ResponseValidationError printable details, to show up in server error logs. PR #10078 by @tiangolo.

Refactors

  • ✏️ Fix typo in deprecation warnings in fastapi/params.py. PR #9854 by @russbiggs.
  • ✏️ Fix typos in comments on internal code in fastapi/concurrency.py and fastapi/routing.py. PR #9590 by @ElliottLarsen.

Docs

Translations

  • 🌐 Add Japanese translation for docs/ja/docs/deployment/concepts.md. PR #10062 by @tamtam-fitness.
  • 🌐 Add Japanese translation for docs/ja/docs/deployment/server-workers.md. PR #10064 by @tamtam-fitness.
  • 🌐 Update Japanese translation for docs/ja/docs/deployment/docker.md. PR #10073 by @tamtam-fitness.
  • 🌐 Add Ukrainian translation for docs/uk/docs/fastapi-people.md. PR #10059 by @rostik1410.
  • 🌐 Add Ukrainian translation for docs/uk/docs/tutorial/cookie-params.md. PR #10032 by @rostik1410.
  • 🌐 Add Russian translation for docs/ru/docs/deployment/docker.md. PR #9971 by @Xewus.
  • 🌐 Add Vietnamese translation for docs/vi/docs/python-types.md. PR #10047 by @magiskboy.
  • 🌐 Add Russian translation for docs/ru/docs/tutorial/dependencies/global-dependencies.md. PR #9970 by @dudyaosuplayer.
  • 🌐 Add Urdu translation for docs/ur/docs/benchmarks.md. PR #9974 by @AhsanSheraz.

Internal

0.101.0

8 months ago

Features

  • ✨ Enable Pydantic's serialization mode for responses, add support for Pydantic's computed_field, better OpenAPI for response models, proper required attributes, better generated clients. PR #10011 by @tiangolo.

Refactors

  • ✅ Fix tests for compatibility with pydantic 2.1.1. PR #9943 by @dmontagu.
  • ✅ Fix test error in Windows for jsonable_encoder. PR #9840 by @iudeen.

Upgrades

  • 📌 Do not allow Pydantic 2.1.0 that breaks (require 2.1.1). PR #10012 by @tiangolo.

Translations

  • 🌐 Add Russian translation for docs/ru/docs/tutorial/security/index.md. PR #9963 by @eVery1337.
  • 🌐 Remove Vietnamese note about missing translation. PR #9957 by @tiangolo.

Internal

0.100.1

9 months ago

Fixes

  • 🐛 Replace MultHostUrl to AnyUrl for compatibility with older versions of Pydantic v1. PR #9852 by @Kludex.

Docs

  • 📝 Update links for self-hosted Swagger UI, point to v5, for OpenAPI 31.0. PR #9834 by @tiangolo.

Translations

  • 🌐 Add Ukrainian translation for docs/uk/docs/tutorial/body.md. PR #4574 by @ss-o-furda.
  • 🌐 Add Vietnamese translation for docs/vi/docs/features.md and docs/vi/docs/index.md. PR #3006 by @magiskboy.
  • 🌐 Add Korean translation for docs/ko/docs/async.md. PR #4179 by @NinaHwang.
  • 🌐 Add Chinese translation for docs/zh/docs/tutorial/background-tasks.md. PR #9812 by @wdh99.
  • 🌐 Add French translation for docs/fr/docs/tutorial/query-params-str-validations.md. PR #4075 by @Smlep.
  • 🌐 Add French translation for docs/fr/docs/tutorial/index.md. PR #2234 by @JulianMaurin.
  • 🌐 Add French translation for docs/fr/docs/contributing.md. PR #2132 by @JulianMaurin.
  • 🌐 Add French translation for docs/fr/docs/benchmarks.md. PR #2155 by @clemsau.
  • 🌐 Update Chinese translations with new source files. PR #9738 by @mahone3297.
  • 🌐 Add Russian translation for docs/ru/docs/tutorial/request-forms.md. PR #9841 by @dedkot01.
  • 🌐 Update Chinese translation for docs/zh/docs/tutorial/handling-errors.md. PR #9485 by @Creat55.

Internal

0.100.0

9 months ago

✨ Support for Pydantic v2

Pydantic version 2 has the core re-written in Rust and includes a lot of improvements and features, for example:

  • Improved correctness in corner cases.
  • Safer types.
  • Better performance and less energy consumption.
  • Better extensibility.
  • etc.

...all this while keeping the same Python API. In most of the cases, for simple models, you can simply upgrade the Pydantic version and get all the benefits. 🚀

In some cases, for pure data validation and processing, you can get performance improvements of 20x or more. This means 2,000% or more. 🤯

When you use FastAPI, there's a lot more going on, processing the request and response, handling dependencies, executing your own code, and particularly, waiting for the network. But you will probably still get some nice performance improvements just from the upgrade.

The focus of this release is compatibility with Pydantic v1 and v2, to make sure your current apps keep working. Later there will be more focus on refactors, correctness, code improvements, and then performance improvements. Some third-party early beta testers that ran benchmarks on the beta releases of FastAPI reported improvements of 2x - 3x. Which is not bad for just doing pip install --upgrade fastapi pydantic. This was not an official benchmark and I didn't check it myself, but it's a good sign.

Migration

Check out the Pydantic migration guide.

For the things that need changes in your Pydantic models, the Pydantic team built bump-pydantic.

A command line tool that will process your code and update most of the things automatically for you. Make sure you have your code in git first, and review each of the changes to make sure everything is correct before committing the changes.

Pydantic v1

This version of FastAPI still supports Pydantic v1. And although Pydantic v1 will be deprecated at some point, ti will still be supported for a while.

This means that you can install the new Pydantic v2, and if something fails, you can install Pydantic v1 while you fix any problems you might have, but having the latest FastAPI.

There are tests for both Pydantic v1 and v2, and test coverage is kept at 100%.

Changes

  • There are new parameter fields supported by Pydantic Field() for:

    • Path()
    • Query()
    • Header()
    • Cookie()
    • Body()
    • Form()
    • File()
  • The new parameter fields are:

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

...you can read about them in the Pydantic docs.

  • The parameter regex has been deprecated and replaced by pattern.

  • New Pydantic models use an improved and simplified attribute model_config that takes a simple dict instead of an internal class Config for their configuration.

  • The attribute schema_extra for the internal class Config has been replaced by the key json_schema_extra in the new model_config dict.

  • When you install "fastapi[all]" it now also includes:

  • Now Pydantic Settings is an additional optional package (included in "fastapi[all]"). To use settings you should now import from pydantic_settings import BaseSettings instead of importing from pydantic directly.

  • PR #9816 by @tiangolo, included all the work done (in multiple PRs) on the beta branch (main-pv2).

0.100.0-beta3

9 months ago

Install with:

pip install --pre --upgrade fastapi pydantic

Features

✨ Beta support for Pydantic version 2 and OpenAPI 3.1.0 ✨

This is probably the last beta before the final release, probably in one or two days. So, please, test it out! 🤓 🚀 (before it's too late 😅).


The same details as in the previous beta releases below.

This has many features:

  • Improved correctness in corner cases
  • Safer types
  • Better performance and less energy consumption
  • Better extensibility
  • etc.

Check out the Pydantic migration guide: https://docs.pydantic.dev/dev-v2/migration/

This version of FastAPI still supports Pydantic v1.

This means that you can install the new Pydantic v2, and if something fails, you can install Pydantic v1 while you fix any problems you might have, but having the latest FastAPI.

The focus of this release is compatibility with Pydantic v1 and v2, to make sure your current apps keep working. Later there will be more focus on refactors and code improvements, and then performance improvements. Although you will probably get nice performance improvements already.

There are tests for both Pydantic v1 and v2, and test coverage is kept at 100%.

You will probably still want to test this version in your code even if you don't plan to migrate to Pydantic v2 yet, to ensure that the changes of FastAPI don't break your app in any way.

If you install the beta, please let me know if everything is working or if you are having issues in this discussion: https://github.com/tiangolo/fastapi/discussions/9709