Develop a REST API using Django Rest Framework (DRF) and MySQL that manages users, products, and orders with proper relationships and data fetching using joins / nested serializers.
install django, django rest framework & MySQL. -> pip install django djangorestframework -> pip install mysqlclient -> django-admin startproject project . -> django-admin startapp customer -> django-admin startapp orders -> django-admin startapp products
Add apps to INSTALLED_APPS in vehicle_system/settings.py:INSTALLED_APPS = [ ... 'rest_framework', 'customer', 'orders', 'products', ]
Add this to settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'DB_NAME', 'USER': 'DB_USER', 'PASSWORD': 'DB_PASSWORD', 'HOST': 'localhost', # Or an IP Address that your DB is hosted on 'PORT': '3306', } }
after creating model.py python manage.py makemigrations python manage.py migrate
for runserver python manage.py runserver
for APIs testing - Postman
APIs endpoint: -> For Customers
-
POST /api/customers/ → Create customer { "name": "", "email": "", "phone": "" }
-
GET /api/customers/ → List customers
-
GET /api/customers/{id}/ → Customer details
-
PUT /api/customers/{id}/ → Update
-
DELETE /api/customers/{id}/ → Delete
-> For Products
-
POST /api/products/ → Create product Ex. { "name": "samsung tv", "price": 80000.45, "stock": 3 }
-
GET /api/products/ → List products
-
PUT /api/products/{id}/ → Update
-
DELETE /api/products/{id}/ → Delete
-> For Order
- Create Order (With Items) POST /api/orders/ Ex. { "customer_id": 1, "items": [ { "product_id": 2, "quantity": 3 }, { "product_id": 4, "quantity": 1 } ] }
2️. Get Orders List GET /api/orders/
- Get Order Detail GET /api/orders/{id}/
4️. Update Order Status PATCH /api/orders/{id}/