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] 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}