justapi — /docs

Callable Dependencies as Classes

Instead of plain functions, use classes as dependencies when you need to encapsulate state:

from justapi import JustAPIApp, Depends

class PaginationParams:
    def __init__(self, skip: int = 0, limit: int = 10):
        self.skip = skip
        self.limit = limit
        self.offset = skip * limit  # computed property

@app.get("/items/")
def list_items(pagination: PaginationParams = Depends()):
    return {"skip": pagination.skip, "limit": pagination.limit, "offset": pagination.offset}

JustAPI calls PaginationParams(skip=..., limit=...) automatically — the parameters come from query params.

Class with Dependencies

class DBSession:
    def __init__(self, db_url: str):
        self.db_url = db_url
        # In production, create connection pool

    def execute(self, query: str):
        return []

def get_db():
    return DBSession("sqlite:///app.db")

@app.get("/users/")
def list_users(db: DBSession = Depends(get_db)):
    return db.execute("SELECT * FROM users")

See Also

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

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