Параметр response_class
Параметр response_class применяется в декораторах маршрутов
FastAPI и указывает, каким классом будет сформирован ответ.
По умолчанию используется JSONResponse, но можно указать
HTMLResponse, PlainTextResponse, RedirectResponse
и другие наследники Response. Это влияет на заголовок
Content-Type и способ сериализации возвращаемых данных.
Синтаксис
@app.get(path, response_class=ResponseClass)
Пример
Давайте вернём HTML-страницу, указав HTMLResponse:
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
app = FastAPI()
@app.get('/', response_class=HTMLResponse)
def index():
return '<h1>hello</h1>'
Результат выполнения кода:
<h1>hello</h1>
Пример
Давайте вернём обычный текст, указав PlainTextResponse:
from fastapi import FastAPI
from fastapi.responses import PlainTextResponse
app = FastAPI()
@app.get('/text', response_class=PlainTextResponse)
def text():
return 'abcde'
Результат выполнения кода:
"abcde"
Пример
Давайте выполним перенаправление, указав RedirectResponse:
from fastapi import FastAPI
from fastapi.responses import RedirectResponse
app = FastAPI()
@app.get('/old', response_class=RedirectResponse)
def old():
return RedirectResponse(url='/new')
@app.get('/new')
def new():
return {'text': 'hello'}
Результат выполнения кода для адреса /old:
{"text": "hello"}
Смотрите также
-
параметр
response_model,
который задаёт модель ответа -
параметр
status_code,
который задаёт код состояния ответа -
метод
get,
который вешает обработчик на GET-запрос -
метод
api_route,
который вешает обработчик на произвольный HTTP-метод