Skip to content

Dependency Injection API

Declare a dependency that is resolved before the handler executes:

from justapi import Depends
def common_params(q: str | None = None, skip: int = 0):
return {"q": q, "skip": skip}
@app.get("/items")
def list_items(request, params: dict = Depends(common_params)):
...
Parameter Type Default Description
dependency callable required The dependency function or class
use_cache bool True Cache result for reuse across nested dependencies

These functions extract specific parts of the request:

from justapi import Path
@app.get("/items/{item_id}")
def read_item(
request,
item_id: int = Path(..., description="The item ID"),
):
Parameter Type Default Description
default any ... ... means required
description str None OpenAPI description
from justapi import Query
@app.get("/items")
def list_items(
request,
q: str = Query(None, max_length=50, description="Search query"),
):
Parameter Type Default Description
default any ... Default value (... = required)
description str None OpenAPI description
max_length int None Max string length
min_length int None Min string length
regex str None Regex pattern
from justapi import Header
@app.get("/protected")
def protected(
request,
authorization: str = Header(..., description="Bearer token"),
):
from justapi import Cookie
@app.get("/")
def home(
request,
session_id: str = Cookie(None, description="Session cookie"),
):
from justapi import Body
@app.post("/items")
def create_item(
request,
data: dict = Body(..., description="Request body"),
):
from justapi import File, UploadFile
@app.post("/upload")
def upload(
request,
file: UploadFile = File(..., description="File to upload"),
):
from justapi import Form
@app.post("/submit")
def submit(
request,
name: str = Form(..., description="User name"),
):
from justapi import Session
@app.get("/agent/state")
def agent_state(request, session: Session):
return {"session_id": session.id, **session.get()}
Attribute/Method Description
session.id Unique session identifier
session.get() Get all session data as dict
session.update(**kwargs) Update session data