Quickstart#

Use the SQLSpec plugin to register configs and inject sessions into handlers.

litestar quickstart#
from litestar import Litestar, get
from litestar.di import NamedDependency

from sqlspec import SQLSpec
from sqlspec.adapters.sqlite import SqliteConfig, SqliteDriver
from sqlspec.extensions.litestar import SQLSpecPlugin

sqlspec = SQLSpec()
sqlspec.add_config(
    SqliteConfig(
        connection_config={"database": ":memory:"}, extension_config={"litestar": {"session_key": "db_session"}}
    )
)

@get("/health", sync_to_thread=False)
def health_check(db_session: NamedDependency[SqliteDriver]) -> dict[str, str]:
    result = db_session.execute("SELECT 'ok' as status")
    return result.one()

app = Litestar(route_handlers=[health_check], plugins=[SQLSpecPlugin(sqlspec=sqlspec)])