Je veux récupérer un en-tête spécifique de mon API à l'intérieur d'une fonction avec Fastapi, mais je ne peux pas trouver une solution pour cela.
In flask était simplement: request.headers['your-header-name']
Pourquoi l'enfer avec Fastapi est si compliqué de faire une chose simple comme ça?
Quelqu'un connaît une solution pour récupérer une en-tête? Merci :)
Le décorateur:
def token_required(f):
@wraps(f)
def decorator(*args, **kwargs):
CONFIG = settings.read_config()
token = None
headers = Request.headers
if "Authorization" in headers:
auth_header = Request.headers
token = auth_header
Elif not token:
return {"Error": "Token is missing or incorrect header name"}, 401
try:
public_key = CONFIG["APPLICATION"]["PUBLIC_KEY"]
claim = jwt.decode(token, public_key)
claim.validate()
except UnicodeDecodeError as err:
return {"Error": f"An error occurred -> {err} check your token"}, 401
return f(*args, **kwargs)
return decorator
J'ai besoin de lire l'en-tête de "autorisation" pour vérifier si vous exister ou non.
Ou, comme décrit dans la documentation Fastapi ( https://fastapi.tiangolo.com/tatutorial/header-params/ ):
from typing import Optional
from fastapi import FastAPI, Header
app = FastAPI()
@app.get("/items/")
async def read_items(user_agent: Optional[str] = Header(None)):
return {"User-Agent": user_agent}
cela va chercher le user_agent
Paramètre d'en-tête.