{"id":16174820,"url":"https://github.com/app-generator/django-dynamic-api","last_synced_at":"2025-03-19T00:31:01.314Z","repository":{"id":61960790,"uuid":"556583118","full_name":"app-generator/django-dynamic-api","owner":"app-generator","description":"Django Dynamic API - Open-Source Library | AppSeed","archived":false,"fork":false,"pushed_at":"2024-10-17T04:35:09.000Z","size":30,"stargazers_count":16,"open_issues_count":0,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-11T05:55:25.993Z","etag":null,"topics":["api-development","api-devtool","api-rest","api-rest-server","django-api","django-api-generator","django-api-sample","django-generator","django-rest-framework","drf-generator","drf-sample"],"latest_commit_sha":null,"homepage":"https://app-generator.dev/docs/developer-tools/dynamic-api.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/app-generator.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-24T05:56:09.000Z","updated_at":"2024-10-17T04:35:44.000Z","dependencies_parsed_at":"2024-10-19T05:05:23.914Z","dependency_job_id":null,"html_url":"https://github.com/app-generator/django-dynamic-api","commit_stats":{"total_commits":15,"total_committers":1,"mean_commits":15.0,"dds":0.0,"last_synced_commit":"cf59a7c3acb4b7ed27dbdcdafe160f07dd02872c"},"previous_names":[],"tags_count":9,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/app-generator%2Fdjango-dynamic-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/app-generator%2Fdjango-dynamic-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/app-generator%2Fdjango-dynamic-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/app-generator%2Fdjango-dynamic-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/app-generator","download_url":"https://codeload.github.com/app-generator/django-dynamic-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243955701,"owners_count":20374373,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-development","api-devtool","api-rest","api-rest-server","django-api","django-api-generator","django-api-sample","django-generator","django-rest-framework","drf-generator","drf-sample"],"created_at":"2024-10-10T04:43:27.052Z","updated_at":"2025-03-19T00:31:01.027Z","avatar_url":"https://github.com/app-generator.png","language":"Python","readme":"# [Django Dynamic API](https://app-generator.dev/docs/developer-tools/dynamic-api.html)\n\nSimple tool that **Generates Secure APIs** on top of `DRF` with minimum effort - actively supported by **[App-Generator](https://app-generator.dev/)**.\n\n- [Dynamic API Features](https://www.youtube.com/watch?v=nPQMUafTrNY) - video presentation\n\n\u003cbr /\u003e\n\n---\n\n\u003e For a **complete set of features** and long-term support, check out **[Dynamic Django](https://app-generator.dev/docs/developer-tools/dynamic-django/index.html)**, a powerful starter that incorporates:\n\n- [Dynamic DataTables](https://app-generator.dev/docs/developer-tools/dynamic-django/datatables.html): using a single line of configuration, the data saved in any table is automatically managed\n- [Dynamic API](https://app-generator.dev/docs/developer-tools/dynamic-django/api.html): any model can become a secure API Endpoint using DRF\n- [Dynamic Charts](https://app-generator.dev/docs/developer-tools/dynamic-django/charts.html): extract relevant charts without coding all major types are supported\n- [CSV Loader](https://app-generator.dev/docs/developer-tools/dynamic-django/csv-loader.html): translate CSV files into Django Models and (optional) load the information\n- Powerful [CLI Tools](https://app-generator.dev/docs/developer-tools/dynamic-django/cli.html) for the GIT interface, configuration editing, updating the configuration and database (create models, migrate DB)\n\n\u003cbr /\u003e\n\n## `Dynamic API Features` \n\n- `API engine` provided by `DRF`\n- `Minimal Configuration` (single line in config for each model)\n- `Handles any model` defined across the project\n\n\u003cbr /\u003e\n\n![Django Dynamic API - DRF Interface (open-source tool).](https://user-images.githubusercontent.com/51070104/197181145-f7458df7-23c3-4c14-bcb1-8e168882a104.jpg)\n\n\u003cbr /\u003e\n\n## How to use it\n\n\u003cbr /\u003e\n\n\u003e **Step #1** - `Install the package` \n\n```bash\n$ pip install django-dynamic-api\n// OR\n$ pip install git+https://github.com/app-generator/django-dynamic-api.git\n```\n\n\u003cbr /\u003e\n\n\u003e **Step #2** - `Update Configuration`, include the new APPs\n\n```python\nINSTALLED_APPS = [\n    'django_dyn_api',            # Django Dynamic API  # \u003c-- NEW\n    'rest_framework',            # Include DRF         # \u003c-- NEW \n    'rest_framework.authtoken',  # Include DRF Auth    # \u003c-- NEW   \n]\n```\n\n\u003cbr /\u003e\n\n\u003e **Step #3** - `Register the model` in `core/settings.py` (DYNAMIC_API section)\n\nThis sample code assumes that `app1` exists and model `Book` is defined and migrated.\n\n```python\n\nDYNAMIC_API = {\n    # pattern: \n    # API_SLUG -\u003e Import_PATH \n    'books'  : \"app1.models.Book\",\n}\n\nREST_FRAMEWORK = {\n    'DEFAULT_AUTHENTICATION_CLASSES': [\n        'rest_framework.authentication.SessionAuthentication',\n        'rest_framework.authentication.TokenAuthentication',\n    ],\n}\n\n```\n\n\u003cbr /\u003e\n\n\u003e **Step #4** - `Migrate DB` and create the tables used by `DRF` \n\n```bash\n$ python manage.py makemigrations\n$ python manage.py migrate\n```\n\n\u003cbr /\u003e\n\n\u003e **Step #5** - `Update routing`, include APIs \n\n```python\nfrom django.contrib import admin\nfrom django.urls import path, include                        # \u003c-- UPD: 'include` directive\nfrom rest_framework.authtoken.views import obtain_auth_token # \u003c-- NEW\n\nurlpatterns = [\n    path(\"admin/\", admin.site.urls),\n    path('', include('django_dyn_api.urls')),     # \u003c-- NEW\n    path('login/jwt/', view=obtain_auth_token),   # \u003c-- NEW\n]    \n```    \n\n\u003cbr /\u003e\n\n\u003e **Step #6** - `Use API` \n\nIf the managed model is `Books`, the API interface is `/api/books/` and all CRUD methods are available. \n\n\u003e Note: for mutating requests, the `JWT Token` is provided by `http://localhost:8000/login/jwt/` route (the user should exist). \n\n\u003cbr /\u003e\n\n![Django API Generator - POSTMAN Interface (open-source tool).](https://user-images.githubusercontent.com/51070104/197181265-eb648e27-e5cf-4f3c-b330-d000aba53c6a.jpg)\n\n\u003cbr /\u003e\n\n### Links \u0026 resources \n\n- [DRF](https://www.django-rest-framework.org/) - HOMEpage\n- More [Developer Tools](https://appseed.us/developer-tools/) provided by `AppSeed`\n- Ask for [Support](https://appseed.us/support/) via `Email` \u0026 `Discord` \n\n\u003cbr /\u003e\n\n---\n[Django Dynamic API](https://app-generator.dev/docs/developer-tools/dynamic-api.html) - Open-source library provided by **[App-Generator](https://app-generator.dev/)**\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapp-generator%2Fdjango-dynamic-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapp-generator%2Fdjango-dynamic-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapp-generator%2Fdjango-dynamic-api/lists"}