Dependency Injection API
Depends()
Section titled “Depends()”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 |
Parameter Extractors
Section titled “Parameter Extractors”These functions extract specific parts of the request:
Path()
Section titled “Path()”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 |
Query()
Section titled “Query()”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 |
Header()
Section titled “Header()”from justapi import Header
@app.get("/protected")def protected( request, authorization: str = Header(..., description="Bearer token"),):Cookie()
Section titled “Cookie()”from justapi import Cookie
@app.get("/")def home( request, session_id: str = Cookie(None, description="Session cookie"),):Body()
Section titled “Body()”from justapi import Body
@app.post("/items")def create_item( request, data: dict = Body(..., description="Request body"),):File()
Section titled “File()”from justapi import File, UploadFile
@app.post("/upload")def upload( request, file: UploadFile = File(..., description="File to upload"),):Form()
Section titled “Form()”from justapi import Form
@app.post("/submit")def submit( request, name: str = Form(..., description="User name"),):Session (Agent)
Section titled “Session (Agent)”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 |
See Also
Section titled “See Also”- Dependency Injection Tutorial — Usage guide
- Session API — Agent session reference
- JustAPIApp — App configuration