justapi — /docs

App-Level Dependencies

Declare dependencies that apply to all routes:

from justapi import JustAPIApp, Depends

def verify_token():
    token = request.headers.get("Authorization", "")
    if not token:
        raise HTTPException(status_code=401)
    return True

app = JustAPIApp(dependencies=[Depends(verify_token)])

@app.get("/public")
def public_route():
    # verify_token still runs
    return {"message": "This requires auth too"}

Router-Level Dependencies

Apply to all routes in a specific router:

from justapi import APIRouter

router = APIRouter(dependencies=[Depends(verify_token)])

@router.get("/items/")
def list_items():
    return []

@router.post("/items/")
def create_item():
    return {}

app.include_router(router, prefix="/api")

Mixing Global + Local

def require_auth():
    # authentication check
    pass

def require_admin():
    # admin check
    pass

# App-wide auth
app = JustAPIApp(dependencies=[Depends(require_auth)])

# This route also requires admin
@app.get("/admin/users", dependencies=[Depends(require_admin)])
def admin_users():
    return []

See Also

JustAPI v2.0.9 — Open Source MIT License · Built with WebTUI · GitHub

NORMAL master justapi/docs
utf-8 Top 1:1