-from fastapi import FastAPI, Request, status
+from fastapi import FastAPI, Request
from fastapi.encoders import jsonable_encoder
from fastapi.exceptions import RequestValidationError
from fastapi.responses import JSONResponse
@app.exception_handler(RequestValidationError)
async def validation_exception_handler(request: Request, exc: RequestValidationError):
return JSONResponse(
- status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,
+ status_code=422,
content=jsonable_encoder({"detail": exc.errors(), "body": exc.body}),
)
from starlette.exceptions import HTTPException
from starlette.requests import Request
from starlette.responses import JSONResponse, Response
-from starlette.status import HTTP_422_UNPROCESSABLE_ENTITY, WS_1008_POLICY_VIOLATION
+from starlette.status import WS_1008_POLICY_VIOLATION
async def http_exception_handler(request: Request, exc: HTTPException) -> Response:
request: Request, exc: RequestValidationError
) -> JSONResponse:
return JSONResponse(
- status_code=HTTP_422_UNPROCESSABLE_ENTITY,
+ status_code=422,
content={"detail": jsonable_encoder(exc.errors())},
)
from pydantic import BaseModel
from starlette.responses import JSONResponse
from starlette.routing import BaseRoute
-from starlette.status import HTTP_422_UNPROCESSABLE_ENTITY
from typing_extensions import Literal
validation_error_definition = {
)
deep_dict_update(openapi_response, process_response)
openapi_response["description"] = description
- http422 = str(HTTP_422_UNPROCESSABLE_ENTITY)
+ http422 = "422"
all_route_params = get_flat_params(route.dependant)
if (all_route_params or route.body_field) and not any(
status in operation["responses"]
"Topic :: Internet :: WWW/HTTP",
]
dependencies = [
- "starlette>=0.40.0,<0.48.0",
+ "starlette>=0.40.0,<0.49.0",
"pydantic>=1.7.4,!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0",
"typing-extensions>=4.8.0",
]
def test_get_invalid():
response = client.get("/foo")
- assert response.status_code == status.HTTP_422_UNPROCESSABLE_ENTITY
+ assert response.status_code == 422
def test_get_valid():