feat(event_handler): add Dependency injection with Depends()#8128
feat(event_handler): add Dependency injection with Depends()#8128leandrodamascena merged 8 commits intodevelopfrom
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## develop #8128 +/- ##
===========================================
+ Coverage 96.64% 96.68% +0.04%
===========================================
Files 284 285 +1
Lines 14079 14187 +108
Branches 1153 1175 +22
===========================================
+ Hits 13606 13717 +111
+ Misses 344 341 -3
Partials 129 129 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Hey @svozza can you pls review again? |
|
Not sure if you want to handle the Sonarqube waring about complexity but other than that looks good to me |
Thanks for approving this! I have this issue #7895. I'll start working on this in the next week. There are a bunch of them that I want to fix. |
|



Issue number: closes #8099
Summary
This PR add
Depends()for type-safe dependency injection in route handlers using theAnnotatedpattern. Dependencies are declared inline in the function signature - no decorators, no global state. This also supports nested dependencies, per-invocation caching,Requestinjection, anddependency_overridesfor easy testing.User experience
Before this, sharing services like a DynamoDB table across handlers required
append_context- untyped, no IDE support, manual setup in every handler.Now you declare what a handler needs directly in its signature:
The resolver handles the rest: resolving, caching, and injecting. Dependencies can depend on other dependencies, and the whole tree is resolved automatically.
For testing, swap any dependency without monkeypatching:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Disclaimer: We value your time and bandwidth. As such, any pull requests created on non-triaged issues might not be successful.