Globale Abhängigkeiten¶
🌐 Translation by AI and humans
This translation was made by AI guided by humans. 🤝
It could have mistakes of misunderstanding the original meaning, or looking unnatural, etc. 🤖
You can improve this translation by helping us guide the AI LLM better.
Bei einigen Anwendungstypen möchten Sie möglicherweise Abhängigkeiten zur gesamten Anwendung hinzufügen.
Ähnlich wie Sie dependencies zu den Pfadoperation-Dekoratoren hinzufügen können, können Sie sie auch zur FastAPI-Anwendung hinzufügen.
In diesem Fall werden sie auf alle Pfadoperationen in der Anwendung angewendet:
from typing import Annotated
from fastapi import Depends, FastAPI, Header, HTTPException
async def verify_token(x_token: Annotated[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: Annotated[str, Header()]):
if x_key != "fake-super-secret-key":
raise HTTPException(status_code=400, detail="X-Key header invalid")
return x_key
app = FastAPI(dependencies=[Depends(verify_token), Depends(verify_key)])
@app.get("/items/")
async def read_items():
return [{"item": "Portal Gun"}, {"item": "Plumbus"}]
@app.get("/users/")
async def read_users():
return [{"username": "Rick"}, {"username": "Morty"}]
🤓 Other versions and variants
Tip
Prefer to use the Annotated version if possible.
from fastapi import Depends, FastAPI, Header, HTTPException
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 = FastAPI(dependencies=[Depends(verify_token), Depends(verify_key)])
@app.get("/items/")
async def read_items():
return [{"item": "Portal Gun"}, {"item": "Plumbus"}]
@app.get("/users/")
async def read_users():
return [{"username": "Rick"}, {"username": "Morty"}]
Und alle Ideen aus dem Abschnitt über das Hinzufügen von dependencies zu den Pfadoperation-Dekoratoren gelten weiterhin, aber in diesem Fall für alle Pfadoperationen in der App.
Abhängigkeiten für Gruppen von Pfadoperationen¶
Wenn Sie später lesen, wie Sie größere Anwendungen strukturieren (Größere Anwendungen – mehrere Dateien), möglicherweise mit mehreren Dateien, lernen Sie, wie Sie einen einzelnen dependencies-Parameter für eine Gruppe von Pfadoperationen deklarieren.