{"categories":[{"label":"Software Development","url":"https://skillfed.io/packages/category/software-development/8"},{"label":"Libraries","url":"https://skillfed.io/packages/category/software-development-libraries/6"},{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/12"},{"label":"Internet","url":"https://skillfed.io/packages/category/internet/3"},{"label":"WWW/HTTP","url":"https://skillfed.io/packages/category/internet-www-http/4"},{"label":"Application Frameworks","url":"https://skillfed.io/packages/category/software-development-libraries-application-frameworks/3"},{"label":"HTTP Servers","url":"https://skillfed.io/packages/category/internet-www-http-http-servers"}],"enrichment":{"capability":"Django Ninja Extra extends Django Ninja with class-based controllers, advanced permissions, and dependency injection for building structured REST APIs.","skillfed_tags":["class-based-views","dependency-injection","async-first"],"use_cases":["Build modular REST APIs by grouping related endpoints into controller classes with shared dependencies and permissions.","Implement fine-grained permission control at both controller and individual route levels for complex authorization schemes.","Inject services and repositories into controllers for clean separation between API handlers and business logic.","Migrate from Django Ninja to a framework with familiar class-based patterns while retaining async-first performance.","Generate interactive API documentation automatically via OpenAPI/Swagger without manual schema definitions."],"what_it_does":"Django Ninja Extra is a class-based extension for Django Ninja that organizes REST API endpoints into controller classes rather than scattered function decorators. It adds controller-level and route-level permission systems, built-in dependency injection via the injector package, and a service layer pattern for business logic separation. The package inherits Django Ninja's Pydantic-based validation, async support, and automatic OpenAPI documentation while layering on organizational patterns for larger APIs.\n\nYou use it by decorating controller classes with @api_controller, defining handler methods with @http_get/@http_post/etc., and registering them with your NinjaExtraAPI instance. Dependencies are automatically resolved and injected into controller constructors. It supports custom permission classes at both controller and individual route levels, making it suitable for APIs with complex authorization requirements. The package maintains compatibility with Django versions 3.1 through 6.0 and Python 3.8 and later.","worth_installing":"Yes. This is an actively maintained, permissive-licensed extension to Django Ninja with low install friction and no known vulnerabilities. Install it if you're building a Django REST API and prefer class-based organization with dependency injection; skip it if you're committed to function-based simplicity."},"id":"django-ninja-extra","links":{"html":"https://skillfed.io/packages/django-ninja-extra","md":"https://skillfed.io/packages/django-ninja-extra.md","pypi":"https://pypi.org/project/django-ninja-extra/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-07-21","license_spdx":null,"license_treatment":"permissive","name":"django-ninja-extra","python_support":"supports_current","summary":"Django Ninja Extra - Class Based Utility and more for Django Ninja(Fast Django REST framework)"},"popularity":{"monthly_downloads":408881,"position":6874,"tier":"top_15000"},"security":{"n_vulnerabilities":0},"version":"0.31.6"}
