Для переадресации в приложении FastAPI применяется класс RedirectResponse (класс-наследник от Response). В качестве обязательного параметра конструктор RedirectResponse принимает адрес для перенаправления:
import mimetypes
from fastapi import FastAPI
from fastapi.responses import RedirectResponse, PlainTextResponse
app = FastAPI()
@app.get("/old")
def old():
return RedirectResponse("/new")
@app.get("/new")
def new():
return PlainTextResponse("Новая страница")
В данном случае при обращении по пути "/old" происходит перенаправление по пути "/new". Альтернативный вариант:
@app.get("/old", response_class= RedirectResponse)
def old():
return "/new"
Также можно перенаправлять по абсолютному адресу:
@app.get("/old")
def old():
return RedirectResponse("https://metanit.com/python/fastapi")
По умолчанию RedirectResponse отправляет статусный код 307 (временная переадресация). Если такое положение не устраивает, то можно задать статусный код переадресации с помощью параметра status_code:
@app.get("/old")
def old():
return RedirectResponse("/new", status_code=302)
или так
@app.get("/old", response_class= RedirectResponse, status_code=302)
def old():
return "/new"