body:`This PR modifies dependency files (\`pyproject.toml\` or \`uv.lock\`), which is restricted to members of the **${context.repo.owner}** organization on GitHub.\n\nIf you need a dependency change, please [open a discussion](https://github.com/${context.repo.owner}/${context.repo.repo}/discussions/new) describing what you need and why.\n\nClosing this PR automatically.`
});
await github.rest.pulls.update({
owner:context.repo.owner,
repo:context.repo.repo,
pull_number:context.payload.pull_request.number,
state:'closed'
});
core.setFailed('Dependency changes are restricted to organization members.');
}else {
console.log(`Author ${author} (author_association=${assoc}) is allowed to make dependency changes.`);
<ahref="https://www.permit.io/blog/implement-authorization-in-fastapi?utm_source=github&utm_medium=referral&utm_campaign=fastapi"target="_blank"title="Fine-Grained Authorization for FastAPI"><imgsrc="https://fastapi.tiangolo.com/img/sponsors/permit.png"></a>
<ahref="https://www.interviewpal.com/?utm_source=fastapi&utm_medium=open-source&utm_campaign=dev-hiring"target="_blank"title="InterviewPal - AI Interview Coach for Engineers and Devs"><imgsrc="https://fastapi.tiangolo.com/img/sponsors/interviewpal.png"></a>
<ahref="https://dribia.com/en/"target="_blank"title="Dribia - Data Science within your reach"><imgsrc="https://fastapi.tiangolo.com/img/sponsors/dribia.png"></a>
<ahref="https://talordata.com/?campaignid=oh5dVZ3Zc3YGiAI2&utm_source=fastapi&utm_term=fastapi"target="_blank"title="TalorData SERP API - Multi-Engine Search Results Data"><imgsrc="https://fastapi.tiangolo.com/img/sponsors/talordata.png"></a>
@ -34,7 +34,7 @@ Keep in mind that you have to return the `JSONResponse` directly.
///
/// info
/// note
The `model` key is not part of OpenAPI.
@ -183,7 +183,7 @@ Notice that you have to return the image using a `FileResponse` directly.
///
/// info
/// note
Unless you specify a different media type explicitly in your `responses` parameter, FastAPI will assume the response has the same media type as the main response class (default `application/json`).
@ -120,7 +120,7 @@ To add a function that should be run when the application is shutting down, decl
Here, the `shutdown` event handler function will write a text line `"Application shutdown"` to a file `log.txt`.
/// info
/// note
In the `open()` function, the `mode="a"` means "append", so, the line will be added after whatever is on that file, without overwriting the previous contents.
@ -152,7 +152,7 @@ Just a technical detail for the curious nerds. 🤓
Underneath, in the ASGI technical specification, this is part of the [Lifespan Protocol](https://asgi.readthedocs.io/en/latest/specs/lifespan.html), and it defines events called `startup` and `shutdown`.
/// info
/// note
You can read more about the Starlette `lifespan` handlers in [Starlette's Lifespan' docs](https://www.starlette.dev/lifespan/).
@ -22,7 +22,7 @@ With **FastAPI**, using OpenAPI, you can define the names of these webhooks, the
This can make it a lot easier for your users to **implement their APIs** to receive your **webhook** requests, they might even be able to autogenerate some of their own API code.
/// info
/// note
Webhooks are available in OpenAPI 3.1.0 and above, supported by FastAPI `0.99.0` and above.
@ -36,7 +36,7 @@ When you create a **FastAPI** application, there is a `webhooks` attribute that
The webhooks that you define will end up in the **OpenAPI** schema and the automatic **docs UI**.
/// info
/// note
The `app.webhooks` object is actually just an `APIRouter`, the same type you would use when structuring your app with multiple files.
@ -81,7 +81,7 @@ If you need to support clients that don't send a `Content-Type` header, you can
With this setting, requests without a `Content-Type` header will have their body parsed as JSON, which is the same behavior as older versions of FastAPI.
/// info
/// note
This behavior and configuration was added in FastAPI 0.132.0.
@ -36,7 +36,7 @@ Django REST Framework was created by Tom Christie. The same creator of Starlette
///
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Have an automatic API documentation web user interface.
@ -56,7 +56,7 @@ This decoupling of parts, and being a "microframework" that could be extended to
Given the simplicity of Flask, it seemed like a good match for building APIs. The next thing to find was a "Django REST Framework" for Flask.
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Be a micro-framework. Making it easy to mix and match the tools and parts needed.
@ -98,7 +98,7 @@ def read_url():
See the similarities in `requests.get(...)` and `@app.get(...)`.
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
* Have a simple and intuitive API.
* Use HTTP method names (operations) directly, in a straightforward and intuitive way.
@ -118,7 +118,7 @@ At some point, Swagger was given to the Linux Foundation, to be renamed OpenAPI.
That's why when talking about version 2.0 it's common to say "Swagger", and for version 3+ "OpenAPI".
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Adopt and use an open standard for API specifications, instead of a custom schema.
@ -147,7 +147,7 @@ These features are what Marshmallow was built to provide. It is a great library,
But it was created before there existed Python type hints. So, to define every <dfntitle="the definition of how data should be formed">schema</dfn> you need to use specific utils and classes provided by Marshmallow.
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Use code to define "schemas" that provide data types and validation, automatically.
@ -163,13 +163,13 @@ It uses Marshmallow underneath to do the data validation. And it was created by
It's a great tool and I have used it a lot too, before having **FastAPI**.
/// info
/// note
Webargs was created by the same Marshmallow developers.
///
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Have automatic validation of incoming request data.
@ -193,13 +193,13 @@ But then, we have again the problem of having a micro-syntax, inside of a Python
The editor can't help much with that. And if we modify parameters or Marshmallow schemas and forget to also modify that YAML docstring, the generated schema would be obsolete.
/// info
/// note
APISpec was created by the same Marshmallow developers.
///
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Support the open standard for APIs, OpenAPI.
@ -225,13 +225,13 @@ Using it led to the creation of several Flask full-stack generators. These are t
And these same full-stack generators were the base of the [**FastAPI** Project Generators](project-generation.md).
/// info
/// note
Flask-apispec was created by the same Marshmallow developers.
///
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Generate the OpenAPI schema automatically, from the same code that defines serialization and validation.
@ -251,7 +251,7 @@ But as TypeScript data is not preserved after compilation to JavaScript, it cann
It can't handle nested models very well. So, if the JSON body in the request is a JSON object that has inner fields that in turn are nested JSON objects, it cannot be properly documented and validated.
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Use Python types to have great editor support.
@ -271,7 +271,7 @@ It clearly inspired Uvicorn and Starlette, that are currently faster than Sanic
///
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Find a way to have a crazy performance.
@ -287,7 +287,7 @@ It is designed to have functions that receive two parameters, one "request" and
So, data validation, serialization, and documentation, have to be done in code, not automatically. Or they have to be implemented as a framework on top of Falcon, like Hug. This same distinction happens in other frameworks that are inspired by Falcon's design, of having one request object and one response object as parameters.
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Find ways to get great performance.
@ -313,7 +313,7 @@ The dependency injection system requires pre-registration of the dependencies an
Routes are declared in a single place, using functions declared in other places (instead of using decorators that can be placed right on top of the function that handles the endpoint). This is closer to how Django does it than to how Flask (and Starlette) does it. It separates in the code things that are relatively tightly coupled.
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Define extra validations for data types using the "default" value of model attributes. This improves editor support, and it was not available in Pydantic before.
@ -335,13 +335,13 @@ It has an interesting, uncommon feature: using the same framework, it's possible
As it is based on the previous standard for synchronous Python web frameworks (WSGI), it can't handle Websockets and other things, although it still has high performance too.
/// info
/// note
Hug was created by Timothy Crosley, the same creator of [`isort`](https://github.com/timothycrosley/isort), a great tool to automatically sort imports in Python files.
///
/// check | Ideas inspiring **FastAPI**
/// tip | Ideas inspiring **FastAPI**
Hug inspired parts of APIStar, and was one of the tools I found most promising, alongside APIStar.
@ -375,7 +375,7 @@ It was no longer an API web framework, as the creator needed to focus on Starlet
Now APIStar is a set of tools to validate OpenAPI specifications, not a web framework.
/// info
/// note
APIStar was created by Tom Christie. The same guy that created:
@ -385,7 +385,7 @@ APIStar was created by Tom Christie. The same guy that created:
///
/// check | Inspired **FastAPI** to
/// tip | Inspired **FastAPI** to
Exist.
@ -409,7 +409,7 @@ That makes it extremely intuitive.
It is comparable to Marshmallow. Although it's faster than Marshmallow in benchmarks. And as it is based on the same Python type hints, the editor support is great.
/// check | **FastAPI** uses it to
/// tip | **FastAPI** uses it to
Handle all the data validation, data serialization and automatic model documentation (based on JSON Schema).
@ -452,7 +452,7 @@ Nevertheless, it is already being used as a "standard" by several tools. This gr
///
/// check | **FastAPI** uses it to
/// tip | **FastAPI** uses it to
Handle all the core web parts. Adding features on top.
@ -470,7 +470,7 @@ It is not a web framework, but a server. For example, it doesn't provide tools f
It is the recommended server for Starlette and **FastAPI**.
/// check | **FastAPI** recommends it as
/// tip | **FastAPI** recommends it as
The main web server to run **FastAPI** applications.
There are other formats and tools to define and install package dependencies.
@ -556,7 +556,7 @@ If you are using containers (e.g. Docker, Kubernetes), then there are two main a
If you have **multiple containers**, probably each one running a **single process** (for example, in a **Kubernetes** cluster), then you would probably want to have a **separate container** doing the work of the **previous steps** in a single container, running a single process, **before** running the replicated worker containers.
/// info
/// note
If you are using Kubernetes, this would probably be an [Init Container](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/).
@ -17,7 +17,7 @@ As you saw in the previous chapter about [Deployment Concepts](concepts.md), the
Here I'll show you how to use **Uvicorn** with **worker processes** using the `fastapi` command or the `uvicorn` command directly.
/// info
/// note
If you are using containers, for example with Docker or Kubernetes, I'll tell you more about that in the next chapter: [FastAPI in Containers - Docker](docker.md).
@ -170,7 +170,7 @@ And if there's any other style or consistency need, I'll ask directly for that,
* Then **comment** saying that you did that, that's how I will know you really checked it.
/// info
/// note
Unfortunately, I can't simply trust PRs that just have several approvals.
@ -210,6 +210,9 @@ You can [contribute](contributing.md) to the source code with Pull Requests, for
* Make sure to add tests.
* Make sure to add documentation if it's relevant.
Note that PRs from non-team members are not allowed to modify `pyproject.toml` or `uv.lock`, to prevent supply chain risk.
If you would like to add a new dependency, create a new [Discussion](https://github.com/fastapi/fastapi/discussions/categories/questions) to explain why.
## Help Maintain FastAPI { #help-maintain-fastapi }
To learn more about [Pydantic, check its docs](https://docs.pydantic.dev/).
@ -341,7 +341,7 @@ This might all sound abstract. Don't worry. You'll see all this in action in the
The important thing is that by using standard Python types, in a single place (instead of adding more classes, decorators, etc), **FastAPI** will do a lot of the work for you.
/// info
/// note
If you already went through all the tutorial and came back to see more about types, a good resource is [the "cheat sheet" from `mypy`](https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html).
* 📝 Update docs, simplify usage of admonitions, only default ones. PR [#15553](https://github.com/fastapi/fastapi/pull/15553) by [@tiangolo](https://github.com/tiangolo).
* 📝 Fix image URLs in `index.md`. PR [#15534](https://github.com/fastapi/fastapi/pull/15534) by [@YuriiMotov](https://github.com/YuriiMotov).
* ✏️ Fix Azkaban spelling typo in `virtual-environments.md`. PR [#15463](https://github.com/fastapi/fastapi/pull/15463) by [@isaacbernat](https://github.com/isaacbernat).
* 💄 Improve layout and styling. PR [#15462](https://github.com/fastapi/fastapi/pull/15462) by [@alejsdev](https://github.com/alejsdev).
* 💄 Refactor opinions section with interactive tabs and new logos. PR [#15458](https://github.com/fastapi/fastapi/pull/15458) by [@alejsdev](https://github.com/alejsdev).
@ -16,10 +18,22 @@ hide:
### Translations
* 🌐 Update translations for ko (update-outdated). PR [#15525](https://github.com/fastapi/fastapi/pull/15525) by [@tiangolo](https://github.com/tiangolo).
* 🌐 Update translations for zh-hant (update-outdated). PR [#15524](https://github.com/fastapi/fastapi/pull/15524) by [@tiangolo](https://github.com/tiangolo).
* 🌐 Update translations for fr (update-outdated). PR [#15522](https://github.com/fastapi/fastapi/pull/15522) by [@tiangolo](https://github.com/tiangolo).
* 🌐 Update translations for es (update-outdated). PR [#15523](https://github.com/fastapi/fastapi/pull/15523) by [@tiangolo](https://github.com/tiangolo).
* 🌐 Update translations for zh (update-outdated). PR [#15520](https://github.com/fastapi/fastapi/pull/15520) by [@tiangolo](https://github.com/tiangolo).
* 🌐 Update translations for ru (update-outdated). PR [#15521](https://github.com/fastapi/fastapi/pull/15521) by [@tiangolo](https://github.com/tiangolo).
* 🌐 Fix typos in Spanish LLM-prompt. PR [#15472](https://github.com/fastapi/fastapi/pull/15472) by [@crr004](https://github.com/crr004).
### Internal
* 🔒️ Only allow team members to modify dependencies. PR [#15548](https://github.com/fastapi/fastapi/pull/15548) by [@svlandeg](https://github.com/svlandeg).
* ⬆ Bump actions/add-to-project from 1.0.2 to 2.0.0. PR [#15490](https://github.com/fastapi/fastapi/pull/15490) by [@dependabot[bot]](https://github.com/apps/dependabot).
* ⬆ Bump actions/labeler from 6.0.1 to 6.1.0. PR [#15507](https://github.com/fastapi/fastapi/pull/15507) by [@dependabot[bot]](https://github.com/apps/dependabot).
* 🔧 Remove Ruff ignored rule for tabs. PR [#15533](https://github.com/fastapi/fastapi/pull/15533) by [@tiangolo](https://github.com/tiangolo).
* 🔧 Update sponsors badge. PR [#15532](https://github.com/fastapi/fastapi/pull/15532) by [@tiangolo](https://github.com/tiangolo).
* 🔧 Add sponsor: TalorData. PR [#15531](https://github.com/fastapi/fastapi/pull/15531) by [@tiangolo](https://github.com/tiangolo).
* ⬆ Bump ty from 0.0.21 to 0.0.34. PR [#15443](https://github.com/fastapi/fastapi/pull/15443) by [@dependabot[bot]](https://github.com/apps/dependabot).
* ⬆ Bump pydantic from 2.13.2 to 2.13.3. PR [#15444](https://github.com/fastapi/fastapi/pull/15444) by [@dependabot[bot]](https://github.com/apps/dependabot).
* 👷 Add pre-commit to check typos. PR [#15482](https://github.com/fastapi/fastapi/pull/15482) by [@tiangolo](https://github.com/tiangolo).
@ -4,7 +4,7 @@ If you are building an application or a web API, it's rarely the case that you c
**FastAPI** provides a convenience tool to structure your application while keeping all the flexibility.
/// info
/// note
If you come from Flask, this would be the equivalent of Flask's Blueprints.
@ -194,7 +194,7 @@ Having `dependencies` in the `APIRouter` can be used, for example, to require au
///
/// check
/// tip
The `prefix`, `tags`, `responses`, and `dependencies` parameters are (as in many other cases) just a feature from **FastAPI** to help you avoid code duplication.
@ -339,7 +339,7 @@ We could also import them like:
from app.routers import items, users
```
/// info
/// note
The first version is a "relative import":
@ -382,7 +382,7 @@ Now, let's include the `router`s from the submodules `users` and `items`:
@ -65,7 +65,7 @@ The same way, you can declare optional query parameters, by setting their defaul
In this case, the function parameter `q` will be optional, and will be `None` by default.
/// check
/// tip
Also notice that **FastAPI** is smart enough to notice that the path parameter `item_id` is a path parameter and `q` is not, so, it's a query parameter.
When you need to receive form fields instead of JSON, you can use `Form`.
/// info
/// note
To use forms, first install [`python-multipart`](https://github.com/Kludex/python-multipart).
@ -32,7 +32,7 @@ The <dfn title="specification">spec</dfn> requires the fields to be exactly name
With `Form` you can declare the same configurations as with `Body` (and `Query`, `Path`, `Cookie`), including validation, examples, an alias (e.g. `user-name` instead of `username`), etc.
/// info
/// note
`Form` is a class that inherits directly from `Body`.
@ -18,7 +18,7 @@ Notice that `status_code` is a parameter of the "decorator" method (`get`, `post
The `status_code` parameter receives a number with the HTTP status code.
/// info
/// note
`status_code` can alternatively also receive an `IntEnum`, such as Python's [`http.HTTPStatus`](https://docs.python.org/3/library/http.html#http.HTTPStatus).
@ -24,7 +24,7 @@ For example you could use it to add metadata for a frontend user interface, etc.
///
/// info
/// note
OpenAPI 3.1.0 (used since FastAPI 0.99.0) added support for `examples`, which is part of the **JSON Schema** standard.
@ -155,7 +155,7 @@ OpenAPI also added `example` and `examples` fields to other parts of the specifi
* `File()`
* `Form()`
/// info
/// note
This old OpenAPI-specific `examples` parameter is now `openapi_examples` since FastAPI `0.103.0`.
@ -171,7 +171,7 @@ And now this new `examples` field takes precedence over the old single (and cust
This new `examples` field in JSON Schema is **just a `list`** of examples, not a dict with extra metadata as in the other places in OpenAPI (described above).
/// info
/// note
Even after OpenAPI 3.1.0 was released with this new simpler integration with JSON Schema, for a while, Swagger UI, the tool that provides the automatic docs, didn't support OpenAPI 3.1.0 (it does since version 5.0.0 🎉).
@ -24,7 +24,7 @@ Copy the example in a file `main.py`:
## Run it { #run-it }
/// info
/// note
The [`python-multipart`](https://github.com/Kludex/python-multipart) package is automatically installed with **FastAPI** when you run the `pip install "fastapi[standard]"` command.
@ -60,7 +60,7 @@ You will see something like this:
<imgsrc="/img/tutorial/security/image01.png">
/// check | Authorize button!
/// tip | Authorize button!
You already have a shiny new "Authorize" button.
@ -118,7 +118,7 @@ So, let's review it from that simplified point of view:
In this example we are going to use **OAuth2**, with the **Password** flow, using a **Bearer** token. We do that using the `OAuth2PasswordBearer` class.
/// info
/// note
A "bearer" token is not the only option.
@ -148,7 +148,7 @@ This parameter doesn't create that endpoint / *path operation*, but declares tha
We will soon also create the actual path operation.
/// info
/// note
If you are a very strict "Pythonista" you might dislike the style of the parameter name `tokenUrl` instead of `token_url`.
@ -176,7 +176,7 @@ This dependency will provide a `str` that is assigned to the parameter `token` o
**FastAPI** will know that it can use this dependency to define a "security scheme" in the OpenAPI schema (and the automatic API docs).
/// info | Technical Details
/// note | Technical Details
**FastAPI** will know that it can use the class `OAuth2PasswordBearer` (declared in a dependency) to define the security scheme in OpenAPI because it inherits from `fastapi.security.oauth2.OAuth2`, which in turn inherits from `fastapi.security.base.SecurityBase`.
@ -4,7 +4,7 @@ You can stream data to the client using **Server-Sent Events** (SSE).
This is similar to [Stream JSON Lines](stream-json-lines.md), but uses the `text/event-stream` format, which is supported natively by browsers with the [`EventSource` API](https://developer.mozilla.org/en-US/docs/Web/API/EventSource).
You could have a sequence of data that you would like to send in a "**stream**", you could do it with **JSON Lines**.
/// info
/// note
Added in FastAPI 0.134.0.
@ -48,7 +48,7 @@ A response would have a content type of `application/jsonl` (instead of `applica
It's very similar to a JSON array (equivalent of a Python list), but instead of being wrapped in `[]` and having `,` between the items, it has **one JSON object per line**, they are separated by a new line character.
/// info
/// note
The important point is that your app will be able to produce each line in turn, while the client consumes the previous lines.
@ -8,7 +8,7 @@ With it, you can use [pytest](https://docs.pytest.org/) directly with **FastAPI*
## Using `TestClient` { #using-testclient }
/// info
/// note
To use `TestClient`, first install [`httpx`](https://www.python-httpx.org).
@ -144,7 +144,7 @@ E.g.:
For more information about how to pass data to the backend (using `httpx` or the `TestClient`) check the [HTTPX documentation](https://www.python-httpx.org).
/// info
/// note
Note that the `TestClient` receives data that can be converted to JSON, not Pydantic models.
When you work in Python projects you probably should use a **virtual environment** (or a similar mechanism) to isolate the packages you install for each project.
/// info
/// note
If you already know about virtual environments, how to create them and use them, you might want to skip this section. 🤓
@ -18,7 +18,7 @@ A **virtual environment** is a directory with some files in it.
///
/// info
/// note
This page will teach you how to use **virtual environments** and how they work.
"_[...] Estoy usando **FastAPI** un montón estos días. [...] De hecho, estoy planeando usarlo para todos los servicios de **ML de mi equipo en Microsoft**. Algunos de ellos se están integrando en el núcleo del producto **Windows** y algunos productos de **Office**._"
<blockquoteclass="fastapi-opinions__quote">"Estoy usando <strong>FastAPI</strong> un montón estos días. De hecho, estoy planeando usarlo para todos los <strong>servicios de ML de mi equipo en Microsoft</strong>. Algunos de ellos se están integrando en el producto principal de <strong>Windows</strong> y algunos productos de <strong>Office</strong>."</blockquote>
<divclass="fastapi-opinions__attr">— Kabir Khan, <strong>Microsoft</strong><ahref="https://github.com/fastapi/fastapi/pull/26">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">"Adoptamos el paquete <strong>FastAPI</strong> para crear un servidor <strong>REST</strong> que pueda ser consultado para obtener <strong>predicciones</strong>." <em>[para Ludwig]</em></blockquote>
<divclass="fastapi-opinions__attr">— Piero Molino, Yaroslav Dudin, Sai Sumanth Miryala, <strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">"<strong>Netflix</strong> se complace en anunciar el lanzamiento open source de nuestro framework de orquestación de <strong>gestión de crisis</strong>: <strong>Dispatch</strong>!" <em>[construido con FastAPI]</em></blockquote>
<divclass="fastapi-opinions__attr">— Kevin Glisson, Marc Vilanova, Forest Monsen, <strong>Netflix</strong><ahref="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">"Si alguien está buscando construir una API de Python para producción, recomendaría altamente <strong>FastAPI</strong>. Está <strong>hermosamente diseñado</strong>, es <strong>simple de usar</strong> y <strong>altamente escalable</strong> — se ha convertido en un <strong>componente clave</strong> en nuestra estrategia de desarrollo API primero."</blockquote>
"_[...] Estoy usando **FastAPI** un montón estos días. [...] De hecho, estoy planeando usarlo para todos los **servicios de ML de mi equipo en Microsoft**. Algunos de ellos se están integrando en el núcleo del producto **Windows** y algunos productos de **Office**._"
@ -81,47 +128,35 @@ Las funcionalidades clave son:
"_Adoptamos el paquete **FastAPI** para crear un servidor **REST** que pueda ser consultado para obtener **predicciones**. [para Ludwig]_"
<divstyle="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin, y Sai Sumanth Miryala - <strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/"><small>(ref)</small></a></div>
<divstyle="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - <strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/"><small>(ref)</small></a></div>
---
"_**Netflix** se complace en anunciar el lanzamiento de código abierto de nuestro framework de orquestación de **gestión de crisis**: **Dispatch**! [construido con **FastAPI**]_"
"_**Netflix** se complace en anunciar el lanzamiento open source de nuestro framework de orquestación de **gestión de crisis**: **Dispatch**! [construido con **FastAPI**]_"
"_Honestamente, lo que has construido parece súper sólido y pulido. En muchos aspectos, es lo que quería que **Hug** fuera; es realmente inspirador ver a alguien construir eso._"
"_Si alguien está buscando construir una API de Python para producción, recomendaría altamente **FastAPI**. Está **hermosamente diseñado**, es **simple de usar** y **altamente escalable**, se ha convertido en un **componente clave** en nuestra estrategia de desarrollo API primero y está impulsando muchas automatizaciones y servicios como nuestro Ingeniero Virtual TAC._"
"_Si estás buscando aprender un **framework moderno** para construir APIs REST, échale un vistazo a **FastAPI** [...] Es rápido, fácil de usar y fácil de aprender [...]_"
"_Nos hemos cambiado a **FastAPI** para nuestras **APIs** [...] Creo que te gustará [...]_"
<divstyle="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong>[fundadores de Explosion AI](https://explosion.ai) - [creadores de spaCy](https://spacy.io)</strong><ahref="https://x.com/_inesmontani/status/1144173225322143744"><small>(ref)</small></a> - <ahref="https://x.com/honnibal/status/1144031421859655680"><small>(ref)</small></a></div>
</div>
---
## FastAPI Conf { #fastapi-conf }
"_Si alguien está buscando construir una API de Python para producción, altamente recomendaría **FastAPI**. Está **hermosamente diseñado**, es **simple de usar** y **altamente escalable**, se ha convertido en un **componente clave** en nuestra estrategia de desarrollo API primero y está impulsando muchas automatizaciones y servicios como nuestro Ingeniero Virtual TAC._"
[**FastAPI Conf '26**](https://fastapiconf.com) se llevará a cabo el **28 de octubre de 2026** en **Ámsterdam, NL**. Todo sobre FastAPI, directo de la fuente. 🎤
<aclass="fastapi-feature-banner"href="https://fastapiconf.com"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-conf.jpeg"alt="FastAPI Conf '26 - October 28, 2026 - Amsterdam, NL"></a>
## Mini documental de FastAPI { #fastapi-mini-documentary }
Hay un [mini documental de FastAPI](https://www.youtube.com/watch?v=mpR8ngthqiE) lanzado a finales de 2025, puedes verlo online:
<ahref="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
<aclass="fastapi-feature-banner"href="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
## **Typer**, el FastAPI de las CLIs { #typer-the-fastapi-of-clis }
@ -245,7 +280,7 @@ Puedes leer más sobre esto en la [documentación del CLI de FastAPI](https://fa
</details>
### Revísalo { #check-it }
### Revisa { #check-it }
Abre tu navegador en [http://127.0.0.1:8000/items/5?q=somequery](http://127.0.0.1:8000/items/5?q=somequery).
@ -258,7 +293,7 @@ Verás el response JSON como:
Ya creaste una API que:
* Recibe requests HTTP en los _paths_`/` y `/items/{item_id}`.
* Ambos _paths_ toman _operaciones_`GET` (también conocidas como métodos HTTP).
* Ambos _paths_ toman `GET`<em>operaciones</em> (también conocidas como _métodos_ HTTP).
* El _path_`/items/{item_id}` tiene un _parámetro de path_`item_id` que debe ser un `int`.
* El _path_`/items/{item_id}` tiene un _parámetro de query_`q` opcional que es un `str`.
Cada vez que instales un **nuevo paquete** en ese entorno, **activa** el entorno de nuevo.
Esto asegura que si usas un programa de **terminal (<abbr title="command line interface – interfaz de línea de comandos">CLI</abbr>)** instalado por ese paquete, uses el de tu entorno virtual y no cualquier otro que podría estar instalado globalmente, probablemente con una versión diferente a la que necesitas.
Esto asegura que si usas un **programa de terminal (<abbr title="command line interface - interfaz de línea de comandos">CLI</abbr>)** instalado por ese paquete, uses el de tu entorno virtual y no cualquier otro que podría estar instalado globalmente, probablemente con una versión diferente a la que necesitas.
Pero si desactivas el entorno virtual y activas el nuevo para `prisoner-of-askaban` entonces cuando ejecutes `python` utilizará el Python del entorno virtual en `prisoner-of-azkaban`.
Pero si desactivas el entorno virtual y activas el nuevo para `prisoner-of-azkaban` entonces cuando ejecutes `python` utilizará el Python del entorno virtual en `prisoner-of-azkaban`.
@ -73,55 +82,81 @@ Les principales fonctionnalités sont :
## Opinions { #opinions }
« _[...] J'utilise beaucoup **FastAPI** ces derniers temps. [...] Je prévois de l'utiliser dans mon équipe pour tous les **services de ML chez Microsoft**. Certains d'entre eux sont intégrés au cœur de **Windows** et à certains produits **Office**._ »
<blockquoteclass="fastapi-opinions__quote">« J'utilise énormément <strong>FastAPI</strong> ces derniers temps. Je prévois de l'utiliser pour tous les <strong>services de ML chez Microsoft</strong> de mon équipe. Certains d'entre eux sont intégrés au cœur de <strong>Windows</strong> et à certains produits <strong>Office</strong>. »</blockquote>
<divclass="fastapi-opinions__attr">— Kabir Khan, <strong>Microsoft</strong><ahref="https://github.com/fastapi/fastapi/pull/26">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">« Nous avons adopté la bibliothèque <strong>FastAPI</strong> pour lancer un serveur <strong>REST</strong> qui peut être interrogé pour obtenir des <strong>prédictions</strong>. » <em>[pour Ludwig]</em></blockquote>
<divclass="fastapi-opinions__attr">— Piero Molino, Yaroslav Dudin, Sai Sumanth Miryala, <strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">« <strong>Netflix</strong> est heureux d’annoncer la publication en open source de notre framework d’orchestration de <strong>gestion de crise</strong> : <strong>Dispatch</strong> ! » <em>[construit avec FastAPI]</em></blockquote>
<divclass="fastapi-opinions__attr">— Kevin Glisson, Marc Vilanova, Forest Monsen, <strong>Netflix</strong><ahref="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">« Si quelqu’un cherche à construire une API Python de production, je recommande vivement <strong>FastAPI</strong>. Il est <strong>magnifiquement conçu</strong>, <strong>simple à utiliser</strong> et <strong>hautement scalable</strong> — il est devenu un <strong>composant clé</strong> de notre stratégie de développement API-first. »</blockquote>
« _[...] J'utilise **FastAPI** énormément ces derniers temps. [...] Je prévois de l'utiliser pour tous les **services de ML chez Microsoft** de mon équipe. Certains d'entre eux sont intégrés au cœur de **Windows** et à certains produits **Office**._ »
« _Nous avons adopté la bibliothèque **FastAPI** pour créer un serveur **REST** qui peut être interrogé pour obtenir des **prédictions**. [pour Ludwig]_ »
« _Nous avons adopté la bibliothèque **FastAPI** pour lancer un serveur **REST** qui peut être interrogé pour obtenir des **prédictions**. [pour Ludwig]_ »
<divstyle="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin, et Sai Sumanth Miryala - <strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/"><small>(ref)</small></a></div>
---
« _**Netflix** est heureux d'annoncer la publication en open source de notre framework d'orchestration de **gestion de crise** : **Dispatch** ! [construit avec **FastAPI**]_ »
« _**Netflix** est heureux d’annoncer la publication en open source de notre framework d’orchestration de **gestion de crise** : **Dispatch** ! [construit avec **FastAPI**]_ »
« _Honnêtement, ce que vous avez construit a l'air super solide et soigné. À bien des égards, c'est ce que je voulais que **Hug** soit — c'est vraiment inspirant de voir quelqu'un construire ça._ »
« _Si quelqu’un cherche à construire une API Python de production, je recommande vivement **FastAPI**. Il est **magnifiquement conçu**, **simple à utiliser** et **hautement scalable** — il est devenu un **composant clé** de notre stratégie de développement API-first._ »
<divstyle="text-align: right; margin-right: 10%;">Timothy Crosley - <strong>Créateur de [Hug](https://github.com/hugapi/hug)</strong><ahref="https://news.ycombinator.com/item?id=19455465"><small>(ref)</small></a></div>
« _Si vous cherchez à apprendre un **framework moderne** pour créer des APIs REST, regardez **FastAPI** [...] C'est rapide, facile à utiliser et facile à apprendre [...]_ »
« _Nous sommes passés à **FastAPI** pour nos **APIs** [...] Je pense que vous l'aimerez [...]_ »
<divstyle="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong>Fondateurs de [Explosion AI](https://explosion.ai) - Créateurs de [spaCy](https://spacy.io)</strong><ahref="https://x.com/_inesmontani/status/1144173225322143744"><small>(ref)</small></a> - <ahref="https://x.com/honnibal/status/1144031421859655680"><small>(ref)</small></a></div>
</div>
---
## FastAPI Conf { #fastapi-conf }
« _Si quelqu'un cherche à construire une API Python de production, je recommande vivement **FastAPI**. Il est **magnifiquement conçu**, **simple à utiliser** et **hautement scalable**. Il est devenu un **composant clé** de notre stratégie de développement API-first et alimente de nombreuses automatisations et services tels que notre ingénieur TAC virtuel._ »
[**FastAPI Conf '26**](https://fastapiconf.com) aura lieu le **28 octobre 2026** à **Amsterdam, NL**. Tout sur FastAPI, à la source. 🎤
<aclass="fastapi-feature-banner"href="https://fastapiconf.com"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-conf.jpeg"alt="FastAPI Conf '26 - 28 octobre 2026 - Amsterdam, NL"></a>
## Mini documentaire FastAPI { #fastapi-mini-documentary }
Un [mini documentaire FastAPI](https://www.youtube.com/watch?v=mpR8ngthqiE) est sorti fin 2025, vous pouvez le regarder en ligne :
<ahref="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
<aclass="fastapi-feature-banner"href="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
## **Typer**, le FastAPI des CLIs { #typer-the-fastapi-of-clis }
Mais si vous désactivez l’environnement virtuel et activez le nouveau pour `prisoner-of-askaban`, alors lorsque vous exécuterez `python`, il utilisera le Python de l’environnement virtuel de `prisoner-of-azkaban`.
Mais si vous désactivez l’environnement virtuel et activez le nouveau pour `prisoner-of-azkaban`, alors lorsque vous exécuterez `python`, il utilisera le Python de l’environnement virtuel de `prisoner-of-azkaban`.
<blockquoteclass="fastapi-opinions__quote">"저는 요즘 <strong>FastAPI</strong>를 많이 사용하고 있습니다. 우리 팀의 모든 <strong>마이크로소프트 ML 서비스</strong>에 사용할 계획입니다. 그중 일부는 핵심 <strong>Windows</strong> 제품과 일부 <strong>Office</strong> 제품에 통합되고 있습니다."</blockquote>
<divclass="fastapi-opinions__attr">— Kabir Khan, <strong>Microsoft</strong><ahref="https://github.com/fastapi/fastapi/pull/26">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">"우리는 <strong>FastAPI</strong> 라이브러리를 채택해 <strong>예측</strong>을 얻기 위해 쿼리할 수 있는 <strong>REST</strong> 서버를 생성했습니다." <em>[Ludwig을 위해]</em></blockquote>
<divclass="fastapi-opinions__attr">— Piero Molino, Yaroslav Dudin, Sai Sumanth Miryala, <strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">"<strong>Netflix</strong>는 우리의 <strong>위기 관리</strong> 오케스트레이션 프레임워크인 <strong>Dispatch</strong>의 오픈 소스 공개를 발표하게 되어 기쁩니다!" <em>[FastAPI로 빌드]</em></blockquote>
<divclass="fastapi-opinions__attr">— Kevin Glisson, Marc Vilanova, Forest Monsen, <strong>Netflix</strong><ahref="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">"프로덕션 Python API를 만들고자 한다면, 저는 <strong>FastAPI</strong>를 강력히 추천합니다. <strong>아름답게 설계</strong>되었고, <strong>사용이 간단</strong>하며, <strong>확장성이 매우 뛰어납니다</strong> — 우리의 API 우선 개발 전략에서 <strong>핵심 구성 요소</strong>가 되었습니다."</blockquote>
"_프로덕션 Python API를 만들고자 한다면, 저는 **FastAPI**를 강력히 추천합니다. **아름답게 설계**되었고, **사용이 간단**하며, **확장성이 매우 뛰어나**고, 우리의 API 우선 개발 전략에서 **핵심 구성 요소**가 되었으며 Virtual TAC Engineer 같은 많은 자동화와 서비스를 이끌고 있습니다._"
[**FastAPI Conf '26**](https://fastapiconf.com)은 **2026년 10월 28일**, **네덜란드 암스테르담**에서 열립니다. FastAPI에 관한 모든 것, 바로 출처에서. 🎤
<aclass="fastapi-feature-banner"href="https://fastapiconf.com"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-conf.jpeg"alt="FastAPI Conf '26 - October 28, 2026 - Amsterdam, NL"></a>
## FastAPI 미니 다큐멘터리 { #fastapi-mini-documentary }
2025년 말에 공개된 [FastAPI 미니 다큐멘터리](https://www.youtube.com/watch?v=mpR8ngthqiE)가 있습니다. 온라인에서 시청할 수 있습니다:
<ahref="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
<aclass="fastapi-feature-banner"href="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
## **Typer**, CLI를 위한 FastAPI { #typer-the-fastapi-of-clis }
Python 패키지에서는 **새 버전**에서 **호환성을 깨뜨리는 변경(breaking changes)**을 **피하려고** 최선을 다하는 것이 매우 일반적이지만, 안전을 위해 더 최신 버전은 의도적으로 설치하고, 테스트를 실행해 모든 것이 올바르게 작동하는지 확인할 수 있을 때 설치하는 것이 좋습니다.
@ -40,7 +40,7 @@ FastAPI — это современный, быстрый (высокопрои
* **Скорость**: Очень высокая производительность, на уровне **NodeJS** и **Go** (благодаря Starlette и Pydantic). [Один из самых быстрых доступных фреймворков Python](#performance).
* **Быстрота разработки**: Увеличьте скорость разработки фич примерно на 200–300%. *
* **Меньше ошибок**: Сократите примерно на 40% количество ошибок, вызванных человеком (разработчиком). *
* **Интуитивность**: Отличная поддержка редактора кода. <dfntitle="также известное как: автодополнение, автозавершение, IntelliSense">Автозавершение</dfn> везде. Меньше времени на отладку.
* **Интуитивность**: Отличная поддержка редактора кода. <dfntitle="также известно как: автозавершение, IntelliSense">Автозавершение</dfn> везде. Меньше времени на отладку.
* **Простота**: Разработан так, чтобы его было легко использовать и осваивать. Меньше времени на чтение документации.
* **Краткость**: Минимизируйте дублирование кода. Несколько возможностей из каждого объявления параметров. Меньше ошибок.
* **Надежность**: Получите код, готовый к продакшн. С автоматической интерактивной документацией.
@ -54,18 +54,27 @@ FastAPI — это современный, быстрый (высокопрои
<blockquoteclass="fastapi-opinions__quote">«В последнее время я много где использую <strong>FastAPI</strong>. На самом деле я планирую использовать его для всех <strong>ML-сервисов моей команды в Microsoft</strong>. Некоторые из них интегрируются в основной продукт <strong>Windows</strong>, а некоторые — в продукты <strong>Office</strong>».</blockquote>
<divclass="fastapi-opinions__attr">— Kabir Khan, <strong>Microsoft</strong><ahref="https://github.com/fastapi/fastapi/pull/26">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">«Мы начали использовать библиотеку <strong>FastAPI</strong>, чтобы поднять <strong>REST</strong>-сервер, к которому можно обращаться за <strong>предсказаниями</strong>». <em>[для Ludwig]</em></blockquote>
<divclass="fastapi-opinions__attr">— Piero Molino, Yaroslav Dudin, Sai Sumanth Miryala, <strong>Uber</strong><ahref="https://eng.uber.com/ludwig-v0-2/">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">«<strong>Netflix</strong> рада объявить об открытом релизе нашего фреймворка оркестрации <strong>антикризисного управления</strong>: <strong>Dispatch</strong>!» <em>[создан с помощью FastAPI]</em></blockquote>
<divclass="fastapi-opinions__attr">— Kevin Glisson, Marc Vilanova, Forest Monsen, <strong>Netflix</strong><ahref="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(ref)</a></div>
<blockquoteclass="fastapi-opinions__quote">«Если вы собираетесь делать продакшн-API на Python, я настоятельно рекомендую <strong>FastAPI</strong>. Он <strong>прекрасно спроектирован</strong>, <strong>прост в использовании</strong> и <strong>отлично масштабируется</strong> — он стал <strong>ключевым компонентом</strong> нашей стратегии API-first».</blockquote>
"_[...] В последнее время я много где использую **FastAPI**. [...] На самом деле я планирую использовать его для всех **ML-сервисов моей команды в Microsoft**. Некоторые из них интегрируются в основной продукт **Windows**, а некоторые — в продукты **Office**._"
"_Честно говоря, то, что вы создали, выглядит очень солидно и отполировано. Во многих смыслах это то, чем я хотел видеть **Hug** — очень вдохновляет видеть, как кто-то это создал._"
"_Если кто-то собирается делать продакшн-API на Python, я настоятельно рекомендую **FastAPI**. Он **прекрасно спроектирован**, **прост в использовании** и **отлично масштабируется**, стал **ключевым компонентом** нашей стратегии API-first и приводит в действие множество автоматизаций и сервисов, таких как наш Virtual TAC Engineer._"
"_Если вы хотите изучить один **современный фреймворк** для создания REST API, посмотрите **FastAPI** [...] Он быстрый, простой в использовании и лёгкий в изучении [...]_"
"_Мы переключились на **FastAPI** для наших **API** [...] Думаю, вам тоже понравится [...]_"
"_Если кто-то собирается делать продакшн-API на Python, я настоятельно рекомендую **FastAPI**. Он **прекрасно спроектирован**, **прост в использовании** и **отлично масштабируется**, стал **ключевым компонентом** нашей стратегии API-first и приводит в действие множество автоматизаций и сервисов, таких как наш Virtual TAC Engineer._"
[**FastAPI Conf '26**](https://fastapiconf.com) пройдёт **28 октября 2026** в **Амстердаме, Нидерланды**. Всё о FastAPI — из первых рук. 🎤
---
<aclass="fastapi-feature-banner"href="https://fastapiconf.com"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-conf.jpeg"alt="FastAPI Conf '26 — 28 октября 2026 — Амстердам, Нидерланды"></a>
## Мини-документальный фильм о FastAPI { #fastapi-mini-documentary }
В конце 2025 года вышел [мини-документальный фильм о FastAPI](https://www.youtube.com/watch?v=mpR8ngthqiE), вы можете посмотреть его онлайн:
<ahref="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
<aclass="fastapi-feature-banner"href="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
## **Typer**, FastAPI для CLI { #typer-the-fastapi-of-clis }
Но если вы деактивируете виртуальное окружение и активируете новое для `prisoner-of-askaban`, тогда при запуске `python` он будет использовать Python из виртуального окружения `prisoner-of-azkaban`.
Но если вы деактивируете виртуальное окружение и активируете новое для `prisoner-of-azkaban`, тогда при запуске `python` он будет использовать Python из виртуального окружения `prisoner-of-azkaban`.
<divclass="fastapi-opinions__attr">— Kevin Glisson、Marc Vilanova、Forest Monsen,<strong>Netflix</strong><ahref="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(ref)</a></div>
"_如果有人想要打造一個可用於生產環境的 Python API,我強力推薦 **FastAPI**。它**設計優雅**、**簡單易用**且**高度可擴展**,已經成為我們 API first 開發策略中的**關鍵元件**,推動了許多自動化與服務,例如我們的 Virtual TAC Engineer._"
"_如果有人想要打造一個可用於生產環境的 Python API,我強力推薦 **FastAPI**。它**設計優雅**、**簡單易用**且**高度可擴展**,已經成為我們 API first 開發策略中的**關鍵元件**,推動了許多自動化與服務,例如我們的 Virtual TAC Engineer。_"
<ahref="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
<aclass="fastapi-feature-banner"href="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>
<divclass="fastapi-opinions__attr">— Kevin Glisson,Marc Vilanova,Forest Monsen,<strong>Netflix</strong><ahref="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(ref)</a></div>
<ahref="https://www.youtube.com/watch?v=mpR8ngthqiE"><imgsrc="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg"alt="FastAPI Mini Documentary"></a>