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
Hashes for django-dans-api-toolkit-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 435120e7ef23f6347c691f04078615d4ea9b6f68cee5592798254b6dca7b3a5c |
|
MD5 | 0d3fc18abb9d940e45db36e870bdd2d5 |
|
BLAKE2b-256 | 98be7f2383baca6f1ba6ba78709731e168a721225decc6424b4c94b27bbfdf3e |
Hashes for django_dans_api_toolkit-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12a55b0b4608905bd17245c8e5bd4978fbea16326a6b52ed3c57089a5d1bee64 |
|
MD5 | 9bc943774de280fb4db695d7b57d2845 |
|
BLAKE2b-256 | 8d00fb81f3fd690c1acdd6b66852351521719fab2b67d84d56a058ebe8f22d3d |