API catatan sederhana dengan autentikasi JWT. Dibangun dengan Django, Django REST Framework, dan SimpleJWT (access token saja, tanpa refresh token).
- Python 3.12 atau lebih baru
- PostgreSQL (hanya untuk mode produksi — pengembangan dan test memakai SQLite)
-
Buat dan aktifkan virtual environment, lalu pasang dependensi:
python3 -m venv venv source venv/bin/activate pip install -r requirements.txt -
Jalankan migrasi (mode dev memakai SQLite, tanpa konfigurasi tambahan):
python manage.py migrate
-
Jalankan server pengembangan:
python manage.py runserver 8000
-
Cek server hidup:
curl http://localhost:8000/api/health # → {"status": "ok"}
Test memakai SQLite — tidak butuh PostgreSQL:
python manage.py testMode produksi memakai project/settings/prod.py yang membaca semua konfigurasi dari environment (lihat tabel di bawah dan .env.example):
gunicorn project.wsgiImpor file postman_collection.json ke Postman (Import → pilih file). Urutan pemakaian:
- Health Check — memastikan server hidup.
- Auth → Register — username unik dibuat otomatis setiap dijalankan.
- Auth → Login — access token otomatis tersimpan ke variabel koleksi.
- Folder Catatan — langsung bisa dipakai karena token sudah terpasang.
Untuk menguji server yang sudah di-deploy, ubah variabel koleksi baseUrl.
| Variabel | Fungsi | Contoh |
|---|---|---|
SECRET_KEY |
Kunci rahasia Django (juga penandatangan JWT) | (string acak yang panjang) |
DATABASE_URL |
Alamat koneksi PostgreSQL | postgres://user:pass@localhost:5432/notes_db |
ALLOWED_HOSTS |
Daftar host yang diizinkan, dipisah koma | localhost,127.0.0.1 |
CORS_ALLOWED_ORIGINS |
Daftar origin frontend yang diizinkan, dipisah koma | http://localhost:5173 |
| Method | Endpoint | Auth | Fungsi |
|---|---|---|---|
| GET | /api/health |
— | Cek server hidup |
| POST | /api/auth/register |
— | Daftar user baru |
| POST | /api/auth/login |
— | Masuk, mendapat access token |
| GET | /api/notes |
Bearer | Daftar catatan milik user |
| POST | /api/notes |
Bearer | Buat catatan |
| GET | /api/notes/:id |
Bearer | Detail catatan |
| DELETE | /api/notes/:id |
Bearer | Hapus catatan |