170 lines
6.0 KiB
Plaintext
170 lines
6.0 KiB
Plaintext
Metadata-Version: 2.4
|
|
Name: django-ninja
|
|
Version: 1.4.0
|
|
Summary: Django Ninja - Fast Django REST framework
|
|
Home-page: https://django-ninja.dev
|
|
Author: Vitaliy Kucheryaviy
|
|
Author-email: ppr.vitaly@gmail.com
|
|
Requires-Python: >=3.7
|
|
Description-Content-Type: text/markdown
|
|
Classifier: Intended Audience :: Information Technology
|
|
Classifier: Intended Audience :: System Administrators
|
|
Classifier: Operating System :: OS Independent
|
|
Classifier: Development Status :: 5 - Production/Stable
|
|
Classifier: Topic :: Internet
|
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
Classifier: Topic :: Software Development :: Libraries
|
|
Classifier: Topic :: Software Development
|
|
Classifier: Typing :: Typed
|
|
Classifier: Environment :: Web Environment
|
|
Classifier: Intended Audience :: Developers
|
|
Classifier: License :: OSI Approved :: MIT License
|
|
Classifier: Programming Language :: Python :: 3
|
|
Classifier: Programming Language :: Python :: 3.7
|
|
Classifier: Programming Language :: Python :: 3.8
|
|
Classifier: Programming Language :: Python :: 3.9
|
|
Classifier: Programming Language :: Python :: 3.10
|
|
Classifier: Programming Language :: Python :: 3.11
|
|
Classifier: Programming Language :: Python :: 3.12
|
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
Classifier: Framework :: Django
|
|
Classifier: Framework :: Django :: 3.1
|
|
Classifier: Framework :: Django :: 3.2
|
|
Classifier: Framework :: Django :: 4.1
|
|
Classifier: Framework :: Django :: 4.2
|
|
Classifier: Framework :: Django :: 5.0
|
|
Classifier: Framework :: Django :: 5.1
|
|
Classifier: Framework :: AsyncIO
|
|
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
|
|
Classifier: Topic :: Internet :: WWW/HTTP
|
|
License-File: LICENSE
|
|
Requires-Dist: Django >=3.1
|
|
Requires-Dist: pydantic >=2.0,<3.0.0
|
|
Requires-Dist: pre-commit ; extra == "dev"
|
|
Requires-Dist: mkdocs ; extra == "doc"
|
|
Requires-Dist: mkdocs-material ; extra == "doc"
|
|
Requires-Dist: markdown-include ; extra == "doc"
|
|
Requires-Dist: mkdocstrings ; extra == "doc"
|
|
Requires-Dist: pytest ; extra == "test"
|
|
Requires-Dist: pytest-cov ; extra == "test"
|
|
Requires-Dist: pytest-django ; extra == "test"
|
|
Requires-Dist: pytest-asyncio ; extra == "test"
|
|
Requires-Dist: psycopg2-binary ; extra == "test"
|
|
Requires-Dist: mypy==1.7.1 ; extra == "test"
|
|
Requires-Dist: ruff==0.5.7 ; extra == "test"
|
|
Requires-Dist: django-stubs ; extra == "test"
|
|
Project-URL: Documentation, https://django-ninja.dev
|
|
Project-URL: Repository, https://github.com/vitalik/django-ninja
|
|
Provides-Extra: dev
|
|
Provides-Extra: doc
|
|
Provides-Extra: test
|
|
|
|
<a href="https://github.com/vitalik/django-ninja/issues/383"><img width="814" alt="SCR-20230123-m1t" src="https://user-images.githubusercontent.com/95222/214056666-585c0479-c122-4cb3-add4-b8844088ccdd.png"></a>
|
|
|
|
|
|
|
|
<a href="https://github.com/vitalik/django-ninja/issues/383">^ Please read ^</a>
|
|
|
|
|
|
|
|
|
|
<p align="center">
|
|
<a href="https://django-ninja.dev/"><img src="https://django-ninja.dev/img/logo-big.png"></a>
|
|
</p>
|
|
<p align="center">
|
|
<em>Fast to learn, fast to code, fast to run</em>
|
|
</p>
|
|
|
|
|
|

|
|

|
|
[](https://badge.fury.io/py/django-ninja)
|
|
[](https://pepy.tech/project/django-ninja)
|
|
|
|
# Django Ninja - Fast Django REST Framework
|
|
|
|
**Django Ninja** is a web framework for building APIs with **Django** and Python 3.6+ **type hints**.
|
|
|
|
|
|
**Key features:**
|
|
|
|
- **Easy**: Designed to be easy to use and intuitive.
|
|
- **FAST execution**: Very high performance thanks to **<a href="https://pydantic-docs.helpmanual.io" target="_blank">Pydantic</a>** and **<a href="/docs/docs/guides/async-support.md">async support</a>**.
|
|
- **Fast to code**: Type hints and automatic docs lets you focus only on business logic.
|
|
- **Standards-based**: Based on the open standards for APIs: **OpenAPI** (previously known as Swagger) and **JSON Schema**.
|
|
- **Django friendly**: (obviously) has good integration with the Django core and ORM.
|
|
- **Production ready**: Used by multiple companies on live projects (If you use django-ninja and would like to publish your feedback, please email ppr.vitaly@gmail.com).
|
|
|
|
|
|
|
|

|
|
|
|
**Documentation**: https://django-ninja.dev
|
|
|
|
---
|
|
|
|
## Installation
|
|
|
|
```
|
|
pip install django-ninja
|
|
```
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
In your django project next to urls.py create new `api.py` file:
|
|
|
|
```Python
|
|
from ninja import NinjaAPI
|
|
|
|
api = NinjaAPI()
|
|
|
|
|
|
@api.get("/add")
|
|
def add(request, a: int, b: int):
|
|
return {"result": a + b}
|
|
```
|
|
|
|
|
|
Now go to `urls.py` and add the following:
|
|
|
|
|
|
```Python hl_lines="3 7"
|
|
...
|
|
from .api import api
|
|
|
|
urlpatterns = [
|
|
path("admin/", admin.site.urls),
|
|
path("api/", api.urls), # <---------- !
|
|
]
|
|
```
|
|
|
|
**That's it !**
|
|
|
|
Now you've just created an API that:
|
|
|
|
- receives an HTTP GET request at `/api/add`
|
|
- takes, validates and type-casts GET parameters `a` and `b`
|
|
- decodes the result to JSON
|
|
- generates an OpenAPI schema for defined operation
|
|
|
|
### Interactive API docs
|
|
|
|
Now go to <a href="http://127.0.0.1:8000/api/docs" target="_blank">http://127.0.0.1:8000/api/docs</a>
|
|
|
|
You will see the automatic interactive API documentation (provided by <a href="https://github.com/swagger-api/swagger-ui" target="_blank">Swagger UI</a> or <a href="https://github.com/Redocly/redoc" target="_blank">Redoc</a>):
|
|
|
|
|
|

|
|
|
|
## What next?
|
|
|
|
- Read the full documentation here - https://django-ninja.dev
|
|
- To support this project, please give star it on Github. 
|
|
- Share it [via Twitter](https://twitter.com/intent/tweet?text=Check%20out%20Django%20Ninja%20-%20Fast%20Django%20REST%20Framework%20-%20https%3A%2F%2Fdjango-ninja.dev)
|
|
- If you already using django-ninja, please share your feedback to ppr.vitaly@gmail.com
|
|
|