https://github.com/vitalik/django-ninja
๐จ Fast, Async-ready, Openapi, type hints based framework for building APIs
https://github.com/vitalik/django-ninja
django django-ninja openapi pydantic python rest-api swagger swagger-ui
Last synced: 7 days ago
JSON representation
๐จ Fast, Async-ready, Openapi, type hints based framework for building APIs
- Host: GitHub
- URL: https://github.com/vitalik/django-ninja
- Owner: vitalik
- License: mit
- Created: 2020-05-19T08:48:53.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-03-15T08:47:44.000Z (about 1 month ago)
- Last Synced: 2025-03-17T12:32:32.907Z (28 days ago)
- Topics: django, django-ninja, openapi, pydantic, python, rest-api, swagger, swagger-ui
- Language: Python
- Homepage: https://django-ninja.dev
- Size: 6.17 MB
- Stars: 7,872
- Watchers: 69
- Forks: 471
- Open Issues: 383
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- made-in-ukraine - django-ninja
- awesome-pydantic - Django Ninja - Django + Pydantic = Fast, Async-ready, OpenAPI, type hints based framework for building APIs. (Web)
- awesome-pydantic - Django Ninja - Django + Pydantic = Fast, Async-ready, OpenAPI, type hints based framework for building APIs. (Web)
- best-of-web-python - GitHub - 39% open ยท โฑ๏ธ 24.05.2024): (Django Utilities)
- stars - vitalik/django-ninja - ๐จ Fast, Async-ready, Openapi, type hints based framework for building APIs (Python)
- stars - vitalik/django-ninja - ๐จ Fast, Async-ready, Openapi, type hints based framework for building APIs (Python)
README
Fast to learn, fast to code, fast to run

[](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 **Pydantic** and **async support**.
- **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 [email protected]).
**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 NinjaAPIapi = 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 apiurlpatterns = [
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 http://127.0.0.1:8000/api/docs
You will see the automatic interactive API documentation (provided by Swagger UI or Redoc):

## 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 [email protected]