Global Dependencies¶
🌐 Yapay Zekâ ve İnsanlar Tarafından Çeviri
Bu çeviri, insanlar tarafından yönlendirilen bir yapay zekâ ile oluşturuldu. 🤝
Orijinal anlamın yanlış anlaşılması ya da kulağa doğal gelmeme gibi hatalar içerebilir. 🤖
Yapay zekâyı daha iyi yönlendirmemize yardımcı olarak bu çeviriyi iyileştirebilirsiniz.
Bazı uygulama türlerinde, tüm uygulama için dependency eklemek isteyebilirsiniz.
dependencies'i path operation decorator'larına ekleyebildiğiniz gibi, FastAPI uygulamasına da ekleyebilirsiniz.
Bu durumda, uygulamadaki tüm path operation'lara uygulanırlar:
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"}]
Ve path operation decorator'larına dependencies ekleme bölümündeki tüm fikirler hâlâ geçerlidir; ancak bu sefer, uygulamadaki tüm path operation'lar için geçerli olur.
Path operations grupları için Dependencies¶
İleride, daha büyük uygulamaları nasıl yapılandıracağınızı (Bigger Applications - Multiple Files) okurken, muhtemelen birden fazla dosyayla birlikte, bir path operations grubu için tek bir dependencies parametresini nasıl tanımlayacağınızı öğreneceksiniz.