Assalamualaikum Wr.Wb....
Berikut contoh lengkap CRUD Post Product REST API menggunakan
Django REST Framework dengan database MySQL, termasuk :
- CRUD Product
- Upload image & PDF
- Pagination
- Keamanan upload (anti webshell / file berbahaya)
- Mitigasi RCE, LFI, XSS, SQLi
- Struktur folder dan Struktur tabel MySQL
- Contoh .env
Struktur Project :
project/│├── core/├── product/├── media/├── manage.py└── .env
Requirement
pip install django djangorestframework mysqlclient python-dotenv pillow python-magic bleach
Setup Virtual Environment
python -m venv venvsource venv/bin/activate
Di VSCode pastikan pilih interpreter : venv/bin/python
File .env, buat .env di root project :
DEBUG=TrueSECRET_KEY=GENERATE_SENDIRIDB_NAME=product_dbDB_USER=rootDB_PASSWORD=DB_HOST=127.0.0.1DB_PORT=3306ALLOWED_HOSTS=127.0.0.1,localhostPORT=8000
Generate SECRET_KEY :
python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
Setup Database di mysql
CREATE DATABASE product_db;
Migrasi database
python manage.py makemigrationspython manage.py migratepython manage.py createsuperuser
Menjalankan Server
python manage.py runserver
Buka di browser atau tes dengan tools postman atau lain nya :
http://127.0.0.1:8000/api/products/
Endpoint API
Method Endpoint Deskripsi-------- --------------------- -------------------GET /api/products/ List + PaginationPOST /api/products/ Create ProductGET /api/products/{id}/ DetailPUT /api/products/{id}/ UpdateDELETE /api/products/{id}/ Delete
Pagination:
/api/products/?page=2
Selengkap nya Source code bisa kalian pelajari di repository github
yang saya buat : [disini]
sekian dan semoga bermanfaat...
Wasalamualaikum Wr.Wb...


0 Comments