Michał Połtyn
42d4db860e
✨ Add per-router exception handlers for APIRouter
...
Allow scoping exception handlers to specific routers instead of only
at the app level. Router-level handlers override app-level handlers
for routes within that router, with precedence: route > child router
> parent router > app-level middleware.
2026-03-06 14:20:39 +01:00
Sebastián Ramírez
2238155844
✨ Add support for Server Sent Events ( #15030 )
2026-03-01 10:21:52 +01:00
Sebastián Ramírez
1377052c6c
📝 Update docs for responses and new stream with `yield` ( #15023 )
2026-02-27 21:51:40 +01:00
Casper da Costa-Luis
c3f54a0794
📝 Add `await` in `StreamingResponse` code example to allow cancellation ( #14681 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-02-27 19:12:46 +00:00
Sebastián Ramírez
749cefdeb1
✨ Add support for streaming JSON Lines and binary data with `yield` ( #15022 )
2026-02-27 19:56:47 +01:00
Motov Yurii
0901b4092c
📝 Rename `docs_src/websockets` to `docs_src/websockets_` to avoid import errors ( #14979 )
2026-02-27 13:34:37 +01:00
Sebastián Ramírez
22354a2530
🔒 ️ Add `strict_content_type` checking for JSON requests ( #14978 )
2026-02-23 18:45:20 +01:00
Sebastián Ramírez
590a5e5355
✨ Serialize JSON response with Pydantic (in Rust), when there's a Pydantic return type or response model ( #14962 )
2026-02-22 17:07:19 +01:00
Sebastián Ramírez
f55ab7e020
🔧 Update pyproject.toml, remove unneeded lines ( #14956 )
2026-02-21 16:16:03 +00:00
Sebastián Ramírez
e8b98d2187
🐛 Fix JSON Schema for files, use `contentMediaType` instead of `format: binary` ( #14953 )
2026-02-21 14:01:31 +01:00
Sebastián Ramírez
faee822574
🎨 Upgrade typing syntax for Python 3.10 ( #14932 )
...
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: tiangolo <1326112+tiangolo@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-17 09:59:14 +00:00
Sebastián Ramírez
bbb96d4a0a
🔥 Remove Python 3.9 specific files, no longer needed after updating translations ( #14931 )
2026-02-17 08:08:04 +00:00
Sebastián Ramírez
d11f820ac3
📝 Update docs for JWT to prevent timing attacks ( #14908 )
2026-02-12 19:10:35 +01:00
Sebastián Ramírez
c9e2277d8b
📝 Update source examples and docs from Python 3.9 to 3.10 ( #14900 )
2026-02-12 14:19:43 +01:00
Tima
9df1f8293d
📝 Fix typing issue in `docs_src/app_testing/app_b` code example ( #14573 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
2026-02-04 14:32:24 +01:00
johnson-earls
3ee652dd0c
📝 Fix example of license identifier in documentation ( #14492 )
...
Co-authored-by: svlandeg <svlandeg@github.com>
2026-02-04 14:29:02 +01:00
Motov Yurii
741c7345ea
📝 Use return type annotation instead of `response_model` when possible ( #14753 )
2026-02-04 13:07:26 +01:00
Motov Yurii
dc3278654f
📝 Use `WSGIMiddleware` from `a2wsgi` instead of deprecated `fastapi.middleware.wsgi.WSGIMiddleware` ( #14756 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-04 12:54:23 +01:00
Sebastián Ramírez
e300630551
➖ Drop support for `pydantic.v1` ( #14609 )
2025-12-27 13:54:56 +01:00
Motov Yurii
3063ada72f
✅ Add missing tests for code examples ( #14569 )
...
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Nils-Hero Lindemann <nilsherolindemann@proton.me>
2025-12-26 11:43:02 +01:00
Sebastián Ramírez
e2cd8a4201
➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's `pydantic.v1` ( #14575 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-20 16:55:38 +01:00
Paras Verma
d70ed5eceb
📝 Fix duplicated variable in `docs_src/python_types/tutorial005_py39.py` ( #14565 )
...
Fix duplicated variable in python types example
2025-12-20 07:40:21 +01:00
Sebastián Ramírez
1c4fc96c91
♻️ Upgrade internal syntax to Python 3.9+ 🎉 ( #14564 )
2025-12-17 21:25:59 +00:00
Sebastián Ramírez
ed97d9dc0c
⚰️ Remove Python 3.8 from CI and remove Python 3.8 examples from source docs ( #14559 )
...
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
2025-12-17 21:41:43 +01:00
Sebastián Ramírez
cd9d093f60
📝 Update docs about re-raising validation errors, do not include string as is to not leak information ( #14487 )
2025-12-10 12:56:50 +00:00
Motov Yurii
9475024640
📝 Add variants for code examples in "Advanced User Guide" ( #14413 )
2025-12-10 09:55:32 +01:00
Motov Yurii
51ad909ffe
🐛 Use `401` status code in security classes when credentials are missing ( #13786 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-11-24 20:03:06 +01:00
Sebastián Ramírez
ac438b9934
✨ Add support for dependencies with scopes, support `scope="request"` for dependencies with `yield` that exit before the response is sent ( #14262 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-11-03 11:12:49 +01:00
Sebastián Ramírez
d34918abf0
✨ Add support for `from pydantic.v1 import BaseModel`, mixed Pydantic v1 and v2 models in the same app ( #14168 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-10-11 18:45:54 +02:00
Sebastián Ramírez
e329d78f86
🐛 Fix support for `StreamingResponse`s with dependencies with `yield` or `UploadFile`s, close after the response is done ( #14099 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-09-29 05:29:38 +02:00
Neizvestnyj
efdafa4361
📝 Update `tutorial/security/oauth2-jwt/` to use `pwdlib` with Argon2 instead of `passlib` ( #13917 )
...
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-09-29 04:57:38 +02:00
Ben Beasley
7563579dc8
⬆️ Upgrade Starlette supported version range to >=0.40.0,<0.49.0 ( #14077 )
...
Co-authored-by: svlandeg <svlandeg@github.com>
2025-09-16 19:21:48 +02:00
Sebastián Ramírez
f5b77ff0fc
📝 Add documentation for Behind a Proxy - Proxy Forwarded Headers, using `--forwarded-allow-ips="*"` ( #14028 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-08-31 21:34:08 +02:00
z0z0r4
d4ddcc5878
📝 Update testing events documentation ( #13259 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-08-31 10:29:21 +00:00
Arnaud Durand
e902ed5fc6
📝 Bring the `scope` claim in line with the standard in `docs_src/security/tutorial005.py` ( #11189 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <yurii.motov.monte@gmail.com>
2025-08-31 12:03:10 +02:00
Joakim Nordling
8fa56b46a1
⬆️ Update ReDoc to version 2.x ( #9700 )
...
Co-authored-by: svlandeg <svlandeg@github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
2025-04-28 20:31:44 +02:00
Sebastián Ramírez
2537d9d1c2
🐛 Fix `convert_underscores=False` for header Pydantic models ( #13515 )
2025-03-23 21:48:54 +01:00
Sebastián Ramírez
74fe89bf35
🐛 Add docs examples and tests (support) for `Annotated` custom validations, like `AfterValidator`, revert #13440 ( #13442 )
...
This reverts commit 15dd2b67d3 .
2025-03-01 22:02:35 +00:00
Hyogeun Oh (오효근)
e157cf4b96
🐛 Fix issue with Swagger theme change example in the official tutorial ( #13289 )
2025-02-18 17:52:15 +01:00
Sebastián Ramírez
08b817a842
🔥 Remove manual type annotations in JWT tutorial to avoid typing expectations (JWT doesn't provide more types) ( #13378 )
2025-02-15 17:28:09 +01:00
Sebastián Ramírez
9ec452a154
📝 Update docs for Query Params and String Validations, remove obsolete Ellipsis docs (`...`) ( #13377 )
2025-02-15 17:23:59 +01:00
Ysabel
9667ce87a9
📝 Update Request Body's `tutorial002` to deal with `tax=0` case ( #13230 )
...
Co-authored-by: svlandeg <svlandeg@github.com>
2025-01-30 12:19:10 +00:00
Kinuax
b0e70cb37e
✏️ Update Strawberry integration docs ( #13155 )
2025-01-06 11:24:17 +00:00
Alejandra
d784a90207
🔥 Remove unused Peewee tutorial files ( #13158 )
2025-01-05 14:44:44 +00:00
Sebastián Ramírez
1c711e7147
📝 Update includes format in docs with an automated script ( #12950 )
2024-11-18 03:25:44 +01:00
Sebastián Ramírez
5c080d81ae
📝 Update includes for `docs/en/docs/tutorial/schema-extra-example.md` ( #12822 )
2024-11-09 16:00:17 +00:00
José Pacheco
8ae4603d68
🐛 Remove `Required` shadowing from fastapi using Pydantic v2 ( #12197 )
...
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
2024-10-12 11:36:32 +02:00
Sebastián Ramírez
7daaac2bc3
✨ Add new tutorial for SQL databases with SQLModel ( #12285 )
2024-10-09 21:44:42 +02:00
Sebastián Ramírez
55035f440b
✨ Add support for Pydantic models for parameters using `Query`, `Cookie`, `Header` ( #12199 )
2024-09-17 20:54:10 +02:00
Sebastián Ramírez
4633b1bca9
✨ Add support for forbidding extra form fields with Pydantic models ( #12134 )
...
Co-authored-by: Sofie Van Landeghem <svlandeg@users.noreply.github.com>
2024-09-06 19:31:18 +02:00