-
-
Notifications
You must be signed in to change notification settings - Fork 810
Description
Hi
Thank you for maintaining this list.
I would like to introduce fastapi-shield.
Proposal: Add fastapi-shield to the 'Third-Party Extensions / Auth' section
I propose adding the library fastapi-shield to the "Third-Party Extensions" section, specifically under a relevant category like "Auth" or "Utils," as it significantly enhances request pre-processing and authorization patterns in FastAPI.
Project Details
Project Name: fastapi-shield
Repository Link: https://github.com/jymchng/fastapi-shield
Description: A library that introduces the "Shield" pattern, allowing for clean, layered dependency-based request guarding (like permissions, rate limits, or auth checks) before endpoints are executed.
Key Advantages for FastAPI Users
fastapi-shield provides a clear and powerful way to separate authorization and utility logic from endpoint business logic, offering three main advantages:
Truly Reusable Decorators: It allows complex dependency injection logic to be encapsulated into simple, declarative decorators (@shield) that can be applied to any endpoint or router. This abstracts away repetitive authorization checks, making endpoint code cleaner.
Clear Separation of Concerns: By moving the authorization/guarding logic entirely into the @shield decorated function and out of the endpoint function, it strictly separates request handling from business execution. This drastically improves endpoint readability and unit testability.
Lazy Injection of Dependencies: A core feature is that the dependencies required by the endpoint's business logic are only injected if and only if all applied shields (i.e., decorators) do not block the request. If a shield fails (e.g., permission denied), the dependency chain for the endpoint is immediately terminated, improving efficiency and resource usage.
We believe this pattern is a valuable addition to the FastAPI ecosystem, particularly for complex, permission-driven applications.
Thank you for considering the inclusion!