A Django app to help make building APIs great.
Project description
Django Dans API Toolkit
Description
Django Dans API Toolkit is a Django app to help make building APIs great.
It provides a collection of tools for common API tasks, intended to complement Django Rest Framework (DRF) rather than replace it.
Features
The toolkit includes:
- API Response Handler (
api_response_handler.py
): Standardizes API response formats. - API Response Renderer (
api_response_renderer.py
): Ensures consistent response rendering across your APIs. - Base Serializer (
serializers/base.py
): Simplifies serializer creation with masking and reference functionality.
Quick Start
Installation
-
Install the package via pip:
pip install django-dans-api-toolkit
-
Add
django_dans_api_toolkit
to yourINSTALLED_APPS
setting:INSTALLED_APPS = [ ... 'django_dans_api_toolkit', ]
-
Run migrations to update your database schema:
python manage.py migrate
-
Use the provided tools in your views and serializers.
Example Usage
API Response Handler
from django_dans_api_toolkit.api_response_handler import ApiResponseHandler
def my_view(request):
handler = ApiResponseHandler()
data = {"key": "value"}
return handler.response_success(results=data)
Base Serializer
from django_dans_api_toolkit.serializers.base import BaseSerializer
from myapp.models import MyModel
class MyModelSerializer(BaseSerializer):
class Meta:
model = MyModel
fields = '__all__'
ref_fields = ['field1', 'field2']
masked_fields = ['field3']
API Response Renderer
Ensure DEFAULT_AUTHENTICATION_CLASSES
and DEFAULT_PAGINATION_CLASS
are set in your settings.py for proper API functionality. Set the renderer itself as well.
Example configuration:
REST_FRAMEWORK = {
"DEFAULT_PAGINATION_CLASS": "rest_framework.pagination.PageNumberPagination",
"PAGE_SIZE": 20,
"DEFAULT_AUTHENTICATION_CLASSES": (
"rest_framework.authentication.TokenAuthentication",
),
}
Requirements
- Python 3.10 - 3.11
- Django 3.1 or higher
- Django Rest Framework
- NOTE: not only must you have this installed, you must have set
DEFAULT_AUTHENTICATION_CLASSES
andDEFAULT_PAGINATION_CLASS
in yoursettings.py
to work with the APIs properly. An example config would be:
- NOTE: not only must you have this installed, you must have set
https://danielnazarian.com
Copyright 2024 © Daniel Nazarian.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-dans-api-toolkit-1.0.2.tar.gz
.
File metadata
- Download URL: django-dans-api-toolkit-1.0.2.tar.gz
- Upload date:
- Size: 15.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86a8733537b76b747ff8d10656cf2d21470bef4138f9dc5b4fe8e6173dab548a |
|
MD5 | c3c8acfb054e492fa3720b5280a35059 |
|
BLAKE2b-256 | 98b3ed2b631f5bcaddfb5ed18a7f6003023fe091fd04a62bcf239cae8df9c83f |
File details
Details for the file django_dans_api_toolkit-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: django_dans_api_toolkit-1.0.2-py3-none-any.whl
- Upload date:
- Size: 16.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31c1ee0063cab22f5b7a2a6be3e30820c464952bab5b147bb33cf121191ac410 |
|
MD5 | 42e1a556ac9a4e1dfe37e09da9e0ee78 |
|
BLAKE2b-256 | 177d32e905695e27b3fc848a6fbe60d48e9e8f3baec6a3ceb0df72d966607ee9 |