💻

Membuat REST API yang Terkoneksi MySQL dengan Menggunakan Node.js dan Express.js

Jul 21, 2024

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

  1. 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.
  2. 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

  1. 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.
  2. 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

  1. Create User (POST /users)

    • Buat fungsi di models/users.js untuk query insert ke tabel users.
    • Panggil fungsi di controllers/usersController.js.
  2. 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.
  3. 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.
  4. 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

  1. Setup Multer

    • Install multer: npm install multer.
    • Buat konfigurasi penyimpanan file di middlewares/multer.js.
    • Siapkan folder public untuk menyimpan file upload.
  2. 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).
  3. 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.