- Notifications
You must be signed in to change notification settings - Fork472
💨 Fast, Async-ready, Openapi, type hints based framework for building APIs
License
NotificationsYou must be signed in to change notification settings
vitalik/django-ninja
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Fast to learn, fast to code, fast to run
Django Ninja is a web framework for building APIs withDjango and Python 3.6+type hints.
Key features:
- Easy: Designed to be easy to use and intuitive.
- FAST execution: Very high performance thanks toPydantic andasync 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) andJSON 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 emailppr.vitaly@gmail.com).
Documentation:https://django-ninja.dev
pip install django-ninja
In your django project next to urls.py create newapi.py
file:
fromninjaimportNinjaAPIapi=NinjaAPI()@api.get("/add")defadd(request,a:int,b:int):return {"result":a+b}
Now go tourls.py
and add the following:
...from .apiimportapiurlpatterns= [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
andb
- decodes the result to JSON
- generates an OpenAPI schema for defined operation
Now go tohttp://127.0.0.1:8000/api/docs
You will see the automatic interactive API documentation (provided bySwagger UI orRedoc):
- Read the full documentation here -https://django-ninja.dev
- To support this project, please give star it on Github.
- Share itvia Twitter
- If you already using django-ninja, please share your feedback toppr.vitaly@gmail.com
About
💨 Fast, Async-ready, Openapi, type hints based framework for building APIs