Fastapi
FastAPI - Dependencies and Custom Headers
Source
Code
from fastapi import Depends, FastAPI, Header, HTTPException
app = FastAPI()
async def verify_token(x_token: str = Header()):
if x_token != "fake-super-secret-token":
raise HTTPException(status_code=400, detail="X-Token header invalid")
async def verify_key(x_key: str = Header()):
if x_key != "fake-super-secret-key":
raise HTTPException(status_code=400, detail="X-Key header invalid")
return x_key
@app.get("/items/", dependencies=[Depends(verify_token), Depends(verify_key)])
async def read_items():
return [{"item": "Foo"}, {"item": "Bar"}]
Test’s
Failed
no Custom Header
curl -s http://localhost/api/items/ |jq
{
"detail": [
{
"loc": [
"header",
"x-token"
],
"msg": "field required",
"type": "value_error.missing"
},
{
"loc": [
"header",
"x-key"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}
adding “x-token”