django-dynamic-api
                                
                                 django-dynamic-api copied to clipboard
                                
                                    django-dynamic-api copied to clipboard
                            
                            
                            
                        Django Dynamic API - Open-Source Library | AppSeed
Django Dynamic API
Simple tool that Generates Secure APIs on top of DRF with minimum effort - actively supported by AppSeed.
Dynamic API Features- see video presentation
- API engineprovided by- DRF
- Minimal Configuration(single line in config for each model)
- Handles any modeldefined across the project

How to use it
Step #1 -
Install the package
$ pip install django-dynamic-api
// OR
$ pip install git+https://github.com/app-generator/django-dynamic-api.git
Step #2 -
Update Configuration, include the new APPs
INSTALLED_APPS = [
    'django_dyn_api',            # Django Dynamic API  # <-- NEW
    'rest_framework',            # Include DRF         # <-- NEW 
    'rest_framework.authtoken',  # Include DRF Auth    # <-- NEW   
]
Step #3 -
Register the modelincore/settings.py(DYNAMIC_API section)
This sample code assumes that app1 exists and model Book is defined and migrated.
DYNAMIC_API = {
    # pattern: 
    # API_SLUG -> Import_PATH 
    'books'  : "app1.models.Book",
}
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': [
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.TokenAuthentication',
    ],
}
Step #4 -
Migrate DBand create the tables used byDRF
$ python manage.py makemigrations
$ python manage.py migrate
Step #5 -
Update routing, include APIs
from django.contrib import admin
from django.urls import path, include                        # <-- UPD: 'include` directive
from rest_framework.authtoken.views import obtain_auth_token # <-- NEW
urlpatterns = [
    path("admin/", admin.site.urls),
    path('', include('django_dyn_api.urls')),     # <-- NEW
    path('login/jwt/', view=obtain_auth_token),   # <-- NEW
]    
Step #6 -
Use API
If the managed model is Books, the API interface is /api/books/ and all CRUD methods are available.
Note: for mutating requests, the
JWT Tokenis provided byhttp://localhost:8000/login/jwt/route (the user should exist).

Links & resources
- DRF - HOMEpage
- More Developer Tools provided by AppSeed
- Ask for Support via Email&Discord
Django Dynamic API - Open-source library provided by AppSeed