RESTful API adalah salah satu cara untuk berkomunikasi antara aplikasi dengan menggunakan metode HTTP dan prinsip-prinsip tertentu yang menjadikan interaksi data lebih terstruktur dan efisien.
Berikut ini Source Code Tugas Membuat RESTful API dengan Express dan Prisma.
Persiapan Setup Project
- Install Node js
Unduh Node.js versi terbaru atau sesuai dengan spesifikasi laptop Anda di link berikut
Node js. Ketik node -v, jika output versi nya muncul maka Node js berhasil terinstall.
- Install Git
Unduh Git di link berikut ini untuk Windows
Git, ketik git -v, jika output versi nya muncul maka berhasil terinstall.
- Install xampp untuk import database
- Install aplikasi untuk test Rest API, rekomendasi Postman
- Kopi (opsional)
Setup Database
- Buat nama database, disini saya buat uas_pbp_juniar_endin_suganda, teman-teman silahkan sesuaikan sesuka hati.
- Setelah itu klik nama database yang baru dibuat
- Lalu import file sql yang ada di dalam repo, nama filenya uas_pbp_juniar_endin_suganda.sql
- Kalau berhasil nanti muncul 2 table relasi ini, table users yang berisi data users dan table posts yang berisi data postingan tiap user.
Setup Backend API
- Clone project, salin code dibawah ini
git clone https://github.com/stacktugas/RESTful-api-express-prisma- Buka folder nya pakai vscode
- Buka tab terminal di vscode
- Install packages
npm install- Jalankan server
npm start
Dokumentasi API
Users
Endpoint | http://localhost:3000/users/ |
Action | Get All Users |
Method | GET |
Res | [ { "id": 4, "username": "juniar", "password": "password-sangat-rahasia", "name": "Juniar Ikhsan", "token": "a16c1e650b133924734f2f933c50a745c8cd752ba33e06299244b1185672abc5" }, { "id": 5, "username": "endin", "password": "passwordsangatrahasia", "name": "Endin Syadudin", "token": "a72708c643c90517de1b533fe39dccf11fd3594f2bbbbfb24da80d63116ec4e4" }, { "id": 6, "username": "suganda", "password": "passworddienkripsi", "name": "Suganda", "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c" } ] |
Endpoint | http://localhost:3000/users/4 |
Action | Get user by ID |
Method | GET |
Res | { "id": 4, "username": "juniar", "password": "password-sangat-rahasia", "name": "Juniar Ikhsan", "token": "a16c1e650b133924734f2f933c50a745c8cd752ba33e06299244b1185672abc5" } |
Endpoint | http://localhost:3000/users/ |
Action | Create User |
Method | POST |
Req Body | { "username": "akhsan", "password": "passworddienkripsi", "name": "Akhsan", "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c" } |
Res | { "id": 7, "username": "akhsan", "password": "passworddienkripsi", "name": "Akhsan", "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c" } |
Endpoint | http://localhost:3000/users/7 |
Action | Update User |
Method | PUT |
Req Body | { "username": "akhsan_update", "password": "passworddienkripsi", "name": "Akhsan", "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c" } |
Res | { "id": 7, "username": "akhsan_update", "password": "passworddienkripsi", "name": "Akhsan", "token": "868c8802fdaf7bbd0422a505c1edc3951fbf61af888031687a2222d9a22e1e6c" } |
PostingsEndpoint | http://localhost:3000/posts/ |
Action | Get All Posts |
Method | GET |
Res | [ { "post_id": 1, "user_id": 7, "title": "Konten Pertama", "content": "isi konten pertama", "tags": "tag1, tag2, tag3, tag4", "created_at": "2024-02-03T17:24:25.000Z" } ] |
Endpoint | http://localhost:3000/posts/1 |
Action | Get post by ID |
Method | GET |
Res | { "post_id": 1, "user_id": 7, "title": "Konten Pertama", "content": "isi konten pertama", "tags": "tag1, tag2, tag3, tag4", "created_at": "2024-02-03T17:24:25.000Z" } |
Endpoint | http://localhost:3000/posts/ |
Action | Create Post |
Method | POST |
Req Body | { "user_id": 4, "title": "Konten Kedua", "content": "isi konten kedua", "tags": "tag1, tag2, tag3, tag4, tag5" } |
Res | { "post_id": 2, "user_id": 4, "title": "Konten Kedua", "content": "isi konten kedua", "tags": "tag1, tag2, tag3, tag4, tag5", "created_at": "2024-02-03T17:27:58.000Z" } |
Endpoint | http://localhost:3000/posts/2 |
Action | Update Post |
Method | PUT |
Req Body | { "user_id": 4, "title": "Konten Kedua Update Judul", "content": "isi konten kedua terupdate", "tags": "tag1, tag2, tag3, tag4, tag5" } |
Res | { "post_id": 2, "user_id": 4, "title": "Konten Kedua Update Judul", "content": "isi konten kedua terupdate", "tags": "tag1, tag2, tag3, tag4, tag5", "created_at": "2024-02-03T17:27:58.000Z" } |