From 0eef5aa5f48dd7fb3a44a9e4ad3314a41a05d1ed Mon Sep 17 00:00:00 2001 From: Yurii Motov Date: Tue, 9 Dec 2025 16:47:58 +0100 Subject: [PATCH] Fix `custom_request_and_route/tutorial002_an**` --- docs/en/docs/how-to/custom-request-and-route.md | 4 ++-- docs_src/custom_request_and_route/tutorial002_an.py | 3 ++- docs_src/custom_request_and_route/tutorial002_an_py310.py | 3 ++- docs_src/custom_request_and_route/tutorial002_an_py39.py | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/docs/en/docs/how-to/custom-request-and-route.md b/docs/en/docs/how-to/custom-request-and-route.md index 66d8ac4f3..bfc60729f 100644 --- a/docs/en/docs/how-to/custom-request-and-route.md +++ b/docs/en/docs/how-to/custom-request-and-route.md @@ -92,11 +92,11 @@ We can also use this same approach to access the request body in an exception ha All we need to do is handle the request inside a `try`/`except` block: -{* ../../docs_src/custom_request_and_route/tutorial002_an_py310.py hl[13,15] *} +{* ../../docs_src/custom_request_and_route/tutorial002_an_py310.py hl[14,16] *} If an exception occurs, the`Request` instance will still be in scope, so we can read and make use of the request body when handling the error: -{* ../../docs_src/custom_request_and_route/tutorial002_an_py310.py hl[16:18] *} +{* ../../docs_src/custom_request_and_route/tutorial002_an_py310.py hl[17:19] *} ## Custom `APIRoute` class in a router { #custom-apiroute-class-in-a-router } diff --git a/docs_src/custom_request_and_route/tutorial002_an.py b/docs_src/custom_request_and_route/tutorial002_an.py index cee4a95f0..127f7a9ce 100644 --- a/docs_src/custom_request_and_route/tutorial002_an.py +++ b/docs_src/custom_request_and_route/tutorial002_an.py @@ -3,6 +3,7 @@ from typing import Callable, List from fastapi import Body, FastAPI, HTTPException, Request, Response from fastapi.exceptions import RequestValidationError from fastapi.routing import APIRoute +from typing_extensions import Annotated class ValidationErrorLoggingRoute(APIRoute): @@ -25,5 +26,5 @@ app.router.route_class = ValidationErrorLoggingRoute @app.post("/") -async def sum_numbers(numbers: List[int] = Body()): +async def sum_numbers(numbers: Annotated[List[int], Body()]): return sum(numbers) diff --git a/docs_src/custom_request_and_route/tutorial002_an_py310.py b/docs_src/custom_request_and_route/tutorial002_an_py310.py index 13a5ca542..69b7de485 100644 --- a/docs_src/custom_request_and_route/tutorial002_an_py310.py +++ b/docs_src/custom_request_and_route/tutorial002_an_py310.py @@ -1,4 +1,5 @@ from collections.abc import Callable +from typing import Annotated from fastapi import Body, FastAPI, HTTPException, Request, Response from fastapi.exceptions import RequestValidationError @@ -25,5 +26,5 @@ app.router.route_class = ValidationErrorLoggingRoute @app.post("/") -async def sum_numbers(numbers: list[int] = Body()): +async def sum_numbers(numbers: Annotated[list[int], Body()]): return sum(numbers) diff --git a/docs_src/custom_request_and_route/tutorial002_an_py39.py b/docs_src/custom_request_and_route/tutorial002_an_py39.py index c4e474828..e7de09de4 100644 --- a/docs_src/custom_request_and_route/tutorial002_an_py39.py +++ b/docs_src/custom_request_and_route/tutorial002_an_py39.py @@ -1,4 +1,4 @@ -from typing import Callable +from typing import Annotated, Callable from fastapi import Body, FastAPI, HTTPException, Request, Response from fastapi.exceptions import RequestValidationError @@ -25,5 +25,5 @@ app.router.route_class = ValidationErrorLoggingRoute @app.post("/") -async def sum_numbers(numbers: list[int] = Body()): +async def sum_numbers(numbers: Annotated[list[int], Body()]): return sum(numbers)