15 lines
433 B
Python
15 lines
433 B
Python
from __future__ import annotations
|
|
|
|
import json
|
|
|
|
from fastapi import Request
|
|
|
|
|
|
async def read_json_request(request: Request) -> dict:
|
|
try:
|
|
payload = await request.json()
|
|
except (json.JSONDecodeError, UnicodeDecodeError) as exc:
|
|
raise ValueError("request body must be valid JSON") from exc
|
|
if not isinstance(payload, dict):
|
|
raise ValueError("request body must be a JSON object")
|
|
return payload
|