diff --git a/CHANGES.md b/CHANGES.md index 44f256a96..ffa6fda36 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -16,6 +16,7 @@ ## Changed * use `stac_pydantic.version.STAC_VERSION` instead of `stac_pydantic.api.version.STAC_API_VERSION` as application `stac_version` +* Return more informations from pydantic validation errors ## [3.0.3] - 2024-10-09 diff --git a/stac_fastapi/api/stac_fastapi/api/errors.py b/stac_fastapi/api/stac_fastapi/api/errors.py index 6d90ba63a..2e6ad4866 100644 --- a/stac_fastapi/api/stac_fastapi/api/errors.py +++ b/stac_fastapi/api/stac_fastapi/api/errors.py @@ -4,6 +4,7 @@ from typing import Callable, Dict, Type, TypedDict from fastapi import FastAPI +from fastapi.encoders import jsonable_encoder from fastapi.exceptions import RequestValidationError, ResponseValidationError from starlette import status from starlette.requests import Request @@ -88,7 +89,7 @@ def request_validation_exception_handler( request: Request, exc: RequestValidationError ) -> JSONResponse: return JSONResponse( - content=ErrorResponse(code=exc.__class__.__name__, description=str(exc)), + content=jsonable_encoder({"detail": exc.errors(), "body": exc.body}), status_code=status.HTTP_400_BAD_REQUEST, )