Redirecionamento HTTP - FastAPI

No FastAPI, o redirecionamento de rotas é realizado utilizando a classe RedirectResponse, que é uma subclasse de Response. Essa classe exige, como parâmetro obrigatório, o endereço de destino para o redirecionamento.

No exemplo a seguir, ao acessar a rota "/old", o cliente será redirecionado para a rota "/new":

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("Nova página")

Uma alternativa mais direta é especificar a classe de resposta no decorador da rota. Dessa forma, o redirecionamento pode ser definido apenas retornando o endereço de destino:

@app.get("/old", response_class=RedirectResponse)
def old():
    return "/new"

Além de redirecionar dentro da aplicação, é possível apontar o redirecionamento para URLs absolutas. No exemplo abaixo, a rota "/old" redireciona para um endereço externo:

@app.get("/old")
def old():
    return RedirectResponse("https://www.programicio.com/python/fastapi")

Personalizando o Código de Status HTTP

Por padrão, o RedirectResponse retorna o código de status HTTP 307, que indica um redirecionamento temporário. Caso seja necessário utilizar outro código, como 301 (redirecionamento permanente) , isso pode ser configurado com o parâmetro status_code:

@app.get("/old")
def old():
    return RedirectResponse("/new", status_code=301)

Também é possível definir o código de status diretamente no decorador:

@app.get("/old", response_class=RedirectResponse, status_code=301)
def old():
    return "/new"

Com essas opções, é possível personalizar o redirecionamento de rotas no FastAPI de acordo com as necessidades do projeto.

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com