app-generator / devtool-django-api-generator

Django API Generator - Open-Source Tool for Developers | AppSeed
https://appseed.us/developer-tools/django-api-generator/
Other
12 stars 0 forks source link
appseed django dynamic-programming open-source

Django API Generator

The tool is able to generate APIs using Django & DRF stack with a minimum effort. For newcomers, Django is a leading backend framework used to code from simple websites and APIs to complex eCommerce solutions.


Quick start in Docker

πŸ‘‰ Step 1 - Download the code from the GH repository (using GIT)

$ git clone https://github.com/app-generator/devtool-django-api-generator.git
$ cd devtool-django-api-generator


πŸ‘‰ Step 2 - Start the APP in Docker

$ docker-compose up --build 

Visit http://localhost:5085 in your browser. By default a simple Books Model is used as sample.


Django API Generator - API View page for Books Model.


Video Presentation

https://user-images.githubusercontent.com/51070104/194480046-fe920d98-e3ac-4c65-9e70-8b752ffaff05.mp4


How It Works

πŸ‘‰ Step #1 - Define models in apps/models.py

By default, the project comes with a simple Books model:

class Book(models.Model):

    name = models.CharField(max_length=100)


πŸ‘‰ Step #2 - Register the model in core/settings.py (API_GENERATOR section)

API_GENERATOR = {
    'books': "Book", # <-- Books model provided as sample
}


πŸ‘‰ Step #3 - Migrate Database

$ python manage.py makemigrations
$ python manage.py migrate


πŸ‘‰ Step #4 - Generate API

$ python manage.py generate-api

Note: if you define a model that wasn't migrated to db, you will see an error that say names of not migrated models and codes will not generate.


πŸ‘‰ Step #5 - Use the API


πŸ‘‰ Step #6 - API Authentication

There are 2 models of authentication that you can use.

Token Based Authentication: send post request to /login/jwt/ with username and password in body. Api will return a token.

POST /login/jwt/ {
    "username": "sth",
    "password": "sth"
}

The token should be used in all mutating requests (Create, Update, Delete)

{
  "Authorization": "token {your token}"
}

Example:

{
  "Authorization": "token b36705e1078b4b67d4dc4f1388a1aee4a754d4cd"
}


Basic Authentication

For users authenticated in the app.



Django API Generator - Developer tool provided by AppSeed