Commit Graph

474 Commits

Author SHA1 Message Date
pre-commit-ci-lite[bot] cb0c5f89af
🎨 Auto format 2026-03-14 06:13:14 +00:00
easonysliu 2ea91122c9 Emit UserWarning when Response.background silently discards injected BackgroundTasks
When an endpoint injects BackgroundTasks via dependency injection AND
returns a Response that already has its own `background` attribute set,
the injected tasks are silently dropped. This is a confusing footgun
that causes tasks to disappear without any indication.

This change adds a UserWarning in that scenario so the silent data loss
becomes visible. The warning message explains how to resolve the
conflict (either use the injected BackgroundTasks exclusively, or stop
injecting BackgroundTasks when using Response.background directly).

Ref: https://github.com/fastapi/fastapi/issues/11215

Co-Authored-By: Claude (claude-opus-4-6) <noreply@anthropic.com>
2026-03-14 14:08:25 +08: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
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
Motov Yurii 5aacc7b6a0
🔨 Run tests with `pytest-xdist` and `pytest-cov` (#14992) 2026-02-27 11:53:47 +01:00
Sebastián Ramírez 2686c7fbbf
♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data (#14986) 2026-02-24 09:28:10 +00: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 48e9835732
🗑️ Deprecate `ORJSONResponse` and `UJSONResponse` (#14964) 2026-02-22 17:34:59 +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 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 c9e2277d8b
📝 Update source examples and docs from Python 3.9 to 3.10 (#14900) 2026-02-12 14:19:43 +01:00
Sebastián Ramírez ad4e8e0060
Drop support for Python 3.9 (#14897)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-11 19:32:12 +01:00
Sebastián Ramírez 6ce5e3e961
Tweak comment in test to reference PR (#14885) 2026-02-10 12:14:38 +00:00
Valentyn 38f965985e
Test order for the submitted byte Files (#14828)
Co-authored-by: Valentyn Druzhynin <v.druzhynin@zakaz.global>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-02-10 11:46:48 +00:00
Javier Sánchez Castro df950111fe
Show a clear error on attempt to include router into itself (#14258)
Co-authored-by: Javier Sánchez <javier.sanchez.castro@bookline.ai>
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>
2026-02-10 11:58:40 +01:00
Motov Yurii ed2512a5ec
🐛 Fix `on_startup` and `on_shutdown` parameters of `APIRouter` (#14873)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 17:31:57 +01:00
Motov Yurii 227cb85a03
Fix parameterized tests with snapshots (#14875) 2026-02-09 16:35:43 +01:00
Sebastián Ramírez 9f4ecf562c
Add inline snapshot tests for OpenAPI before changes from Pydantic v2 (#14864) 2026-02-08 10:18:38 +00:00
Sebastián Ramírez f9f7992604
♻️ Re-implement `on_event` in FastAPI for compatibility with the next Starlette, while keeping backwards compatibility (#14851) 2026-02-06 16:18:30 +01:00
Kanetsuna Masaya c5fd75a321
🐛 Fix using `Json[list[str]]` type (issue #10997) (#14616)
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>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-02-05 18:41:43 +00:00
Albin Skott 97145588f5
Add support for PEP695 `TypeAliasType` (#13920)
Co-authored-by: lokidev <torsten.zielke@protonmail.com>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
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>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-02-05 18:34:34 +00:00
Jonathan Fulton b49435becd
Allow `Response` type hint as dependency annotation (#14794)
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>
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2026-02-05 18:23:16 +00:00
Jonathan Fulton 75c47187f3
🐛 Update `ValidationError` schema to include `input` and `ctx` (#14791)
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-02-04 15:34:02 +01:00
Mickaël Guérin 09f5941f0e
🐛 Fix TYPE_CHECKING annotations for Python 3.14 (PEP 649) (#14789) 2026-02-04 14:49:44 +01:00
Cecilia Madrid 1d96b3e3f1
🐛 Strip whitespaces from `Authorization` header credentials (#14786) 2026-02-04 14:46:46 +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
Anton 41352de24c
🚸 Improve error message for invalid query parameter type annotations (#14479)
Co-authored-by: Anton.D <anton.dehtiarenko@chdp-tech.net>
Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
2026-02-04 14:24:59 +01:00
DJ Melisso 08dad5c69f
🐛 Fix OpenAPI duplication of `anyOf` refs for app-level responses with specified `content` and `model` as `Union` (#14463)
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:23:08 +01:00
Sebastián Ramírez 1b42639296
🔥 Remove test variants for Pydantic v1 in test_request_params (#14612) 2025-12-27 19:31:34 +01:00
Sebastián Ramírez 44c849c4fc
🔥 Remove Pydantic v1 specific test variants (#14611) 2025-12-27 19:19:10 +01:00
Sebastián Ramírez e300630551
Drop support for `pydantic.v1` (#14609) 2025-12-27 13:54:56 +01:00
Sebastián Ramírez 34e884156f
Run performance tests only on Pydantic v2 (#14608) 2025-12-26 20:40:26 +00:00
Sebastián Ramírez 535b5daa31
🔊 Add a custom `FastAPIDeprecationWarning` (#14605) 2025-12-26 12:45:20 +00: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 6e42bcd8ce
🔊 Add deprecation warnings when using `pydantic.v1` (#14583) 2025-12-21 17:44:10 +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
Sebastián Ramírez caee1d3123
👷 Add performance tests with CodSpeed (#14558)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-12-18 14:24:09 +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
Motov Yurii d86c47477e
🐛 Fix parameter aliases (#14371)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-12-12 15:56:57 +01:00
Sebastián Ramírez c0556ac3a5
🐛 Fix support for tagged union with discriminator inside of `Annotated` with `Body()` (#14512) 2025-12-12 15:31:21 +01:00
Motov Yurii 6c54bcefd3
Add set of tests for request parameters and alias (#14358)
Co-authored-by: Sebastián Ramírez <tiangolo@gmail.com>
2025-12-11 17:15:36 +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
Sebastián Ramírez 7ba042e069
🐛 Fix support for `if TYPE_CHECKING`, non-evaluated stringified annotations (#14485) 2025-12-10 13:06:05 +01:00
Sebastián Ramírez 42b250d14d
🐛 Fix handling arbitrary types when using `arbitrary_types_allowed=True` (#14482) 2025-12-10 11:36:29 +01:00
Motov Yurii 9475024640
📝 Add variants for code examples in "Advanced User Guide" (#14413) 2025-12-10 09:55:32 +01:00