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.
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.
-
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.
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)
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']
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",
),
}
- 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