Membuat RestAPI dengan Nodejs-Mysql

Atrem13
7 min readMay 31, 2020

--

Hei hei…. Akhirnya bisa nulis di medium lagi hehe. Btw apa kabar nih kalian? Moga tetep sehat meski masih masa pandemi gini ya. Berhubung aku lagi nyoba belajar javascript jadi kali ini aku pengen share ama kalian gimana sih caranya bikin RestAPI dengan nodejs dan mysql. Btw kalian udah tau belum RestAPI itu apaan?

Yah kalo aku artikan secara simple sih RestAPI itu bisa kita bayangkan sebagai semacam perantara antara server dengan client. Jadi saat client melakukan request maka server akan memberikan response (kalau kalian ada pendapat lain bisa share di kolom komentar ya). Ok biar ga lama yuk lanjut ke materi.

untuk source code bisa dilihat di https://github.com/atrem13/medium/tree/master/nodejs-mysql-restApi-try1 soalnya disini aku masukin hasil screen capture.

Photo by Proxyclick Visitor Management System on Unsplash

Struktur folder kalian nanti bakal kayak gini

RestAPI yang akan kita buat nanti akan memungkinkan client untuk melakukan Create, Read, Update, Delete(CRUD) suatu data pada tabel pelanggan. Karena kita bakal pake npm jadi aku minta kalian udah pada install node di laptop/komputer masing masing (yang belum bisa install dulu, cek di https://nodejs.org/en/ ).

Kalau udah, demi mempermudah kerja kalian silahkan install juga express generator melalui npm dengan cara dengan menjalankan perintah berikut

npm install -g express-generator

perintah diatas akan menginstall express-generator secara global di laptop/komputer kalian ( untuk lengkapnya bisa cek lagi disini https://expressjs.com/en/starter/generator.html )

sekarang kita bakal buat project RestAPI dengan express generator, silahkan jalankan perintah berikut:

express nodejs-mysql-restApi-try1 –-no-view

Perintah diatas akan membuatkan folder baru dengan nama nodejs-mysql-restApi-try1(aku emang kebiasaan ngasi nama detail gini biar tau projek apa ini, kalau kalian mau pakai nama lain boleh aja), silahkan masuk direktori nodejs-mysql-restApi-try1 yang baru saja dibuat lalu jalankan

npm install

Ok selanjutnya karena kita akan menggunakan mysql untuk databse dan cors agar bisa mendapat data request dari client jadi kita install dulu mysql dan cors dengan cara menjalankan perintah

npm install mysql cors –-save

perlu kalian ketahui saat kalian menjalankan app nodejs, jika kalian melakukan perubahan pada file maka kalian harus me-restart server. Untuk melakukannya secara otomatis silahkan install nodemon dengan cara menjalankan perintah:

npm install nodemon –-save-dev

kalau udah harusnya tampilan folder dan file package.json kalian bakal kayak gini

dan tampilan app.js kalian kayak gini

Sekarang siapkan database untuk kita gunakan, nama databasenya adalah testDB, di database ini kita tambahkan tabel customers dengan format seperti ini:

CREATE TABLE IF NOT EXISTS `customers` (
id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(255) NOT NULL,
NAME VARCHAR(255) NOT NULL,
active BOOLEAN DEFAULT FALSE
) ENGINE=INNODB DEFAULT CHARSET=utf8;

Karena database sudah siap ayo kita buat folder baru dengan nama config didalam folder config itu kita buat sebuah file dengan nama db.config.js file ini akan berisi data konfigurasi database kita

Tambahkan kode berikut ke file db.config.js

Selanjutnya kembali ke root folder dan tambahkan folder models, di folder models tambahkan sebuah file dengan nama db.js Pada file db.js kita akan menghubungkan projek kita dengan database. Tambahkan kode berikut di file models\db.js

Karena kita akan melakukan CRUD pada data tabel customers maka kita siapkan terlebih dahulu model dari tabel customers. Pada folder models tambahkan file dengan nama customer.model.js, fungsi dari file ini adalah untuk mendefinisikan struktur dari tabel customers yang sudah kita buat tadi, dengan file ini juga kita dapat melakukan crud dengan menambahkan beberapa fungsi. Untuk itu tambahkan kode berikut pada file models\customer.model.js

Penjelasan kode diatas sudah aku jelasin pake komentar, jadi kalian bisa baca baca dan kalau bingung bisa tanyain di kolom komentar :v

Nah karena model udah siap sekarang waktunya tambahin controller, apaan lagi sih controller mer? Sederhananya dengan controller kita bisa atur apa yang akan dilakukan ketika client melakukan request/mengakses route tertentu (kita bakal buat route juga nanti kok). Bayangin aja ketika client melakukan request untuk menambahkan data baru ke table customers, maka controller akan memberi tahu server untuk menjalankan fungsi create yang ada pada file customer.model.js

sekarang balik dulu ke root folder terus tambahin folder dengan nama controllers, di folder controllers tambahin satu file dengan nama customer.controller.js, fungsi dari file ini adalah untuk memanggil / menjalankan fungsi yang udah kalian buat di file models\customer.model.js tadi. Tambahin kode berikut di file controllers\customer.controller.js

Penjelasan kode bisa kalian liat sendiri ya, aku udah bikin komentar di kode diatas v:

Terakhir kita bakal buat file customer.route.js pada folder routes, sebelumnya kalian bisa kosongin folder routes terlebih dahulu karena kita ga perlu file itu (kalau ga salah ada file index dan user di folder routes, itu hapus aja ya). Selanjutnya pada file routes\customer.route.js tambahin kode berikut:

Sama seperti sebelumnya penjelasan kode bisa dibaca sendiri, aku udah tambahin komentar di kode diatas ( jujur code nya dikit tapi komentarnya kebanyakan wkwkwkwk v: )

Sekarang kita hubungin dulu app kita dengan route yang udah kita buat, balik ke root folder terus edit file app.js jadi seperti berikut:

pada kode diatas kita include file customer.route.js yang kita udah buat ke file app.js

Waktunya testing RestAPI yang udah kita, kita bakal test menggunakan postman (kalau belum punya bisa install dulu di https://www.postman.com/)

Pertama kembali ke root folder dan jalankan perintah berikut untuk menjalankan server

Nodemon

Kalau berhasil maka akan muncul seperti ini

Kalau engga coba cek dulu deh siapa tau ada step yang kalian salah lakuin

Kalo udah yuk test dulu di postman

Pertama kita cek untuk insert data baru

Bisa kita liat kita baru aja input data baru dan berhasil, coba cek di database dulu

Ok berhasil masuk ya, aku bakal coba masukin beberapa data lagi biar lebih enak diliat

Selanjutnya di test berikutnya kita bakal cek untuk dapetin semua data customer (saat ini ada 3 data customer di database)

Ok berhasil juga

Selanjutnya cek get data berdasarkan id, kita coba dapetin data dari customer dengan id 2

sip berhasil juga

Selanjutnya coba update data customer dengan id 2

ok berhasil juga bisa cek juga apa udah ke update di database atau belum

Ok berhasil

Terakhir kita hapus data customer dengan id 1

sip berhasil

Cek di database dulu

ok udah kehapus juga

Photo by Doran Erickson on Unsplash

Akhirnya kelar juga seri kali ini, kalau kalian udah langsung paham artinya kalian hebat banget, karena aku pribadi perlu sekitar seminggu lebih buat paham materi ini wkwkwk, tapi kalau kalian masih kurang paham wajar aja karena baru nyoba dan mungkin aku juga kurang bagus jelasinnya, jadi jangan patah semangat ya.

Sekali lagi untuk source code bisa dilihat di https://github.com/atrem13/medium/tree/master/nodejs-mysql-restApi-try1

Seperti biasa ini Cuma basic, masih banyak yang bisa kalian explore diluar sana. Kalau ada yang punya pendapat lain atau mungkin kurang setuju ama yang aku tulis bisa kita diskusi di kolom komentar ya. Seperti biasa kalau ada salah kata atau sejenisnya mohon dimaafkan dan kalau bisa dikoreksi agar aku bisa lebih baik lagi kedepannya.

Oke itu dulu untuk seri kali ini, saya Merta pamit undur diri dan ingat untuk ‘Haus akan ilmu baru’ :)

--

--

Atrem13
Atrem13

No responses yet