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