From 13440986a11602a968c84a3596f46304966ff446 Mon Sep 17 00:00:00 2001 From: dualtribesman <98664686+koladebashir@users.noreply.github.com> Date: Sat, 22 Nov 2025 10:11:18 +0100 Subject: [PATCH 1/2] Improve error handling for item retrieval Fix: Return 404 for non-existent items instead of null response Previously, valid ID formats with non-existent items returned 200 OK with null values, creating ambiguous API responses. Now properly returns 404 Not Found when items don't exist in the database. --- docs_src/query_params_str_validations/tutorial015_an_py310.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs_src/query_params_str_validations/tutorial015_an_py310.py b/docs_src/query_params_str_validations/tutorial015_an_py310.py index 35f368094..6097cafa0 100644 --- a/docs_src/query_params_str_validations/tutorial015_an_py310.py +++ b/docs_src/query_params_str_validations/tutorial015_an_py310.py @@ -1,7 +1,7 @@ import random from typing import Annotated -from fastapi import FastAPI +from fastapi import FastAPI, HTTPException from pydantic import AfterValidator app = FastAPI() @@ -25,6 +25,8 @@ async def read_items( ): if id: item = data.get(id) + if item is None: + raise HTTPException(status_code=404, detail=f"Item with id '{id}' not found") else: id, item = random.choice(list(data.items())) return {"id": id, "name": item} From e5f643c79a4e5c0f701964193174aed648b738b3 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sat, 22 Nov 2025 09:11:43 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=8E=A8=20[pre-commit.ci]=20Auto=20for?= =?UTF-8?q?mat=20from=20pre-commit.com=20hooks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs_src/query_params_str_validations/tutorial015_an_py310.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs_src/query_params_str_validations/tutorial015_an_py310.py b/docs_src/query_params_str_validations/tutorial015_an_py310.py index 6097cafa0..05aadd714 100644 --- a/docs_src/query_params_str_validations/tutorial015_an_py310.py +++ b/docs_src/query_params_str_validations/tutorial015_an_py310.py @@ -26,7 +26,9 @@ async def read_items( if id: item = data.get(id) if item is None: - raise HTTPException(status_code=404, detail=f"Item with id '{id}' not found") + raise HTTPException( + status_code=404, detail=f"Item with id '{id}' not found" + ) else: id, item = random.choice(list(data.items())) return {"id": id, "name": item}