Класс UJSONResponse
Класс UJSONResponse применяется для возврата JSON-ответа
из обработчика FastAPI. В отличие от стандартного JSONResponse,
он сериализует данные через библиотеку ujson, которая
работает заметно быстрее встроенной json. Класс наследуется
от JSONResponse, поэтому первым параметром принимает
данные для сериализации, а также поддерживает параметры
status_code, headers, media_type
и background. Для использования класса нужно
установить библиотеку ujson.
Синтаксис
from fastapi.responses import UJSONResponse
UJSONResponse(content, status_code=200, headers=None, media_type=None, background=None)
Пример
Давайте вернём JSON-ответ через класс UJSONResponse:
from fastapi import FastAPI
from fastapi.responses import UJSONResponse
app = FastAPI()
@app.get('/')
def index():
return UJSONResponse({'text': 'hello'})
Результат выполнения кода:
{"text": "hello"}
Пример
Давайте передадим список значений и зададим свой код статуса:
from fastapi import FastAPI
from fastapi.responses import UJSONResponse
app = FastAPI()
@app.get('/items')
def items():
data = {'items': [1, 2, 3, 4, 5]}
return UJSONResponse(data, status_code=201)
Результат выполнения кода:
{"items": [1, 2, 3, 4, 5]}
Пример
Давайте добавим собственный заголовок в ответ:
from fastapi import FastAPI
from fastapi.responses import UJSONResponse
app = FastAPI()
@app.get('/user')
def user():
headers = {'X-Custom': 'abcde'}
return UJSONResponse({'name': 'user'}, headers=headers)
Результат выполнения кода:
{"name": "user"}
Смотрите также
-
класс
JSONResponse,
который формирует стандартный JSON-ответ -
класс
ORJSONResponse,
который формирует JSON-ответ через библиотеку orjson -
класс
Response,
который является базовым классом для всех ответов -
атрибут
status_code,
который задаёт код состояния HTTP-ответа