Enviando e Recebendo Headers - FastAPI
Enviando Headers
No FastAPI, para incluir um header em uma resposta, utilizamos o parâmetro headers
Response
from fastapi import FastAPI, Response
app = FastAPI()
@app.get("/")
def root():
data = "Hello Programício!"
return Response(content=data, media_type="text/plain", headers={"Secret-Code": "061636"})
No exemplo acima, o cliente recebe um header personalizado chamado Secret-Code com o valor 061636
Outra maneira de adicionar headers é utilizando diretamente o atributo headers da classe Response
from fastapi import FastAPI, Response
app = FastAPI()
@app.get("/")
def root(response: Response):
response.headers["Secret-Code"] = "061636"
return {"message": "Hello Programício!"}
Nessa abordagem, o objeto Response
Recebendo Headers
Para acessar os headers de uma requisição no FastAPI, utilizamos a classe fastapi.Header
User-Agent
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/")
def root(user_agent: str = Header()):
return {"User-Agent": user_agent}
Nesse caso, o nome do parâmetro da função (user_agent
User-Agent
_
Se o header esperado não estiver presente na requisição, podemos definir um valor padrão para o parâmetro, como None
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/")
def root(secret_code: str | None = Header(default=None)):
return {"Secret-Code": secret_code}
No exemplo acima, caso o header Secret-Code
None