dependency-injection
SKILL.md
Dependency Injection
Use this skill when handlers need shared services, repositories, config, or request-scoped resources.
Workflow
- Define provider functions and wrap them with
Provide. - Register dependencies at app/router/controller/handler scope.
- Prefer narrow scope for overrides and testability.
- Keep service lifecycle explicit (singleton vs request-scoped behavior).
Core Pattern
from litestar import Litestar, get
from litestar.di import Provide
def provide_settings() -> dict[str, str]:
return {"env": "dev"}
@get("/env")
async def read_env(settings: dict[str, str]) -> dict[str, str]:
return settings
app = Litestar(
route_handlers=[read_env],
dependencies={"settings": Provide(provide_settings)},
)
DI Checklist
- Use clear dependency keys (
settings,db_session,current_user). - Keep provider side effects controlled.
- Override dependencies in tests rather than monkeypatching internals.
Litestar References
Weekly Installs
1
Repository
alti3/litestar-skillsGitHub Stars
5
First Seen
14 days ago
Security Audits
Installed on
amp1
cline1
opencode1
cursor1
kimi-cli1
codex1