Membuat REST API yang Terkoneksi MySQL dengan Menggunakan Node.js dan Express.js
Tujuan Pembelajaran
- Membuat REST API dengan Node.js dan Express.js.
- Menghubungkan REST API dengan database MySQL.
- Implementasi CRUD (Create, Read, Update, Delete) di REST API.
- Menggunakan Postman untuk testing API.
- Mengenal HTTP status codes dan middleware di Express.
Persiapan Awal
-
Buat Proyek Baru
- Buat folder proyek dengan
mkdir express_mysql.
- Masuk ke folder dengan
cd express_mysql.
- Inisialisasi proyek dengan
npm init -y atau yarn init.
- Install package yang diperlukan:
Express dan Nodemon.
- Buat file
index.js sebagai entry point.
- Setting basic server menggunakan Express.js.
-
Buat Folder Struktur
src: Semua codingan utama disimpan.
routes: Menyimpan semua routing API.
controllers: Menyimpan fungsi bisnis logika untuk masing-masing route.
models: Menyimpan fungsi yang berhubungan dengan querying database.
middlewares: Menyimpan fungsi middleware yang digunakan.
Membuat dan Menghubungkan dengan MySQL
-
Setup MySQL
- Install MySQL jika belum terinstall.
- Gunakan MySQL Workbench atau SQL S sebagai GUI untuk database.
- Buat database dengan nama
express_mysql.
- Buat table dalam database:
users dengan kolom id, name, email, address.
-
Koneksi ke MySQL di Express
- Install package
mysql2.
- Buat file
config/database.js untuk koneksi ke MySQL.
- Implementasikan pooling untuk koneksi database.
CRUD di REST API
-
Create User (POST /users)
- Buat fungsi di
models/users.js untuk query insert ke tabel users.
- Panggil fungsi di
controllers/usersController.js.
-
Read Users (GET /users)
- Implementasikan fungsi untuk mengambil data users di
controllers/usersController.js dengan memanggil model getAllUsers.
- Pastikan untuk mengirimkan data dalam format JSON.
-
Update User (PATCH /users/:id)
- Buat fungsi di
models/users.js untuk query update data user sesuai ID.
- Panggil di
controllers/usersController.js dengan mengirimkan data dari request body.
-
Delete User (DELETE /users/:id)
- Buat query di
models/users.js untuk delete data user berdasarkan ID.
- Implementasikan fungsi di
controllers/usersController.js.
Menggunakan Postman
- Workspace & Collection: Buat workspace dan collection untuk mengorganisir endpoint API.
- Testing API: Simpan setiap endpoint dalam collection dan uji setiap fungsi CRUD di Postman.
HTTP Status Codes
- 200 OK: Pangggilan API berhasil.
- 201 Created: Data berhasil dibuat (POST/PUT).
- 400 Bad Request: Data yang dikirim tidak sesuai/bad request.
- 401 Unauthorized: User tidak memiliki autentikasi yang sesuai.
- 404 Not Found: Endpoint atau resource yang diminta tidak ditemukan.
- 500 Internal Server Error: Terjadi error pada server.
- Handle Status Codes: Pastikan API mengirimkan status kode yang sesuai tiap respons.
Middleware di Express
- Penggunaan Middleware: Buat middleware untuk logging dan pengecekan autentikasi.
- Menambahkan Middleware: Gunakan
app.use untuk middleware global dan sebutkan middleware spesifik pada route tertentu.
Upload File dengan Multer
-
Setup Multer
- Install multer:
npm install multer.
- Buat konfigurasi penyimpanan file di
middlewares/multer.js.
- Siapkan folder
public untuk menyimpan file upload.
-
Implementasi Endpoint Upload
- Buat endpoint baru untuk handling upload file dengan multer.
- Gunakan middleware multer pada route upload.
- Tambahkan fungsi untuk menghandle error upload (file size, invalid type, etc).
-
Testing Upload di Postman
- Gunakan form-data di Postman dan pilih file yang akan diupload.
- Pastikan file disimpan di folder yang telah ditentukan dan endpoint mengirimkan respons yang tepat.
Kesimpulan
Dengan mengikuti panduan ini, Anda diharapkan dapat membangun REST API menggunakan Node.js, Express, dan MySQL, kemudian mengimplementasikan CRUD, menggunakan middleware, serta testing menggunakan Postman.