Module Beginner 8 Agustus 2018

Tutorial RESTful API Node JS + Express + MySQL — Part 2

Belajar RESTful API Node JS + Express + MySQL (Read With Parameter, Create, Update, Delete)

Tutorial RESTful API Node JS + Express + MySQL — Part 2

Belajar RESTful API Node JS + Express + MySQL (Read With Parameter, Create, Update, Delete)

Image Hello fellas!

Maaf banget nih baru sempet ngeblog dan ngelanjutin tutorial gue akibat kesibukan yang mendala seorang anak remaja usia 20 tahun muehehe ^^

Oke langsung to the point aja kali ini gue mau ngajarin lanjutan part 2 dari node js express dan mysql ini. Gue juga sempet baca komenan bahwa ada yang minta dilanjutin, akhirnya gue kabulkan permintaannya (sebenernya emang harus dilanjutin sih hahaha)

cuss langsung ya, bagi yang belum baca part 1 diharapkan ngantri kesini dulu ya hehe.

Sekarang kita edit file controller.js kita dan masukkin fungsi dibawah ini, kita akan ngebuat fungsi Search (Read dengan parameter), Create, Update, dan Delete sekaligus muehehe

exports.findUsers = function(req, res) { var user_id = req.params.user_id; connection.query(‘SELECT * FROM person where id = ?’, [ user_id ], function (error, rows, fields){ if(error){ console.log(error) } else{ response.ok(rows, res) } });};exports.createUsers = function(req, res) { var first_name = req.body.first_name; var last_name = req.body.last_name; connection.query(‘INSERT INTO person (first_name, last_name) values (?,?)’, [ first_name, last_name ], function (error, rows, fields){ if(error){ console.log(error) } else{ response.ok(“Berhasil menambahkan user!”, res) } });};exports.updateUsers = function(req, res) { var user_id = req.body.user_id; var first_name = req.body.first_name; var last_name = req.body.last_name; connection.query(‘UPDATE person SET first_name = ?, last_name = ? WHERE id = ?’, [ first_name, last_name, user_id ], function (error, rows, fields){ if(error){ console.log(error) } else{ response.ok(“Berhasil merubah user!”, res) } });};exports.deleteUsers = function(req, res) { var user_id = req.body.user_id; connection.query(‘DELETE FROM person WHERE id = ?’, [ user_id ], function (error, rows, fields){ if(error){ console.log(error) } else{ response.ok(“Berhasil menghapus user!”, res) } });};Kalo udah langsung pasang semua routesnya dibawah ini:

‘use strict’;module.exports = function(app) { var todoList = require(’./controller’); app.route(’/’) .get(todoList.index); app.route(‘/users’) .get(todoList.users); app.route(‘/users/:user_id’) .get(todoList.findUsers); app.route(‘/users’) .post(todoList.createUsers); app.route(‘/users’) .put(todoList.updateUsers); app.route(‘/users’) .delete(todoList.deleteUsers);};Sekarang saatnya bermain….

Jalankan dengan cara input “node server.js

Image Sekarang kamu memiliki 4 routes baru

  • GET /users/:user_id untuk search ID
  • POST /users untuk menambahkan data
  • PUT /users untuk mengubah data
  • DELETE /users untuk menghapus data Kita mulai dari INSERT, buka Postman kalian

Image Perhatikan, POST diatas menggunakan x-www-form-urlencoded. Untuk Node JS hanya bisa menggunakan Raw JSON dan x-www-form-urlencoded dan tidak bisa menggunakan tipe form-data. Kenapa?

Image Nah tuh kata salah satu jawaban di website sejuta umat developer aka Stackoverflow.

Intinya gini, lu gabisa milih tipe data multipart/form-data karena terlalu kompleks dan terlalu besar kalo dimasukin ke library body-parser. Selain itu x-www-form-urlencoded itu salah satu tipe form yang standar di web. Jadi biar ringan makanya dipakenya x-www-form-urlencoded (CMIIW!).

Oke lanjut aja, sekarang cek user kamu udah nambah belom

Image Oke gue udah berhasil nambah, sekarang kita akan update salah satu ID. Gue akan update ID nomor 2.

Image Cek lagi

Image Berubah tuh jadi Kiddy Gates (Diangkat jadi anaknya Bill Gates HAHAHAHA).

Sekarang kita mau menampilkan ID nomor 2 aja (Read dengan parameter / Search)

Image Berhasil untuk nampilin user dengan ID nomor 2, ini digunakan kalo kalian mau liat detail profile usernya.

Oke sekarang kita akan coba fungsi Hapus, kita akan hapus si ID nomor 3 dengan fungsi DELETE.

Image Kita cek lagi

Image VOILA! Sudah terhapus!

Oke mungkin ada yang bingung kenapa gue pake fungsi GET, POST, PUT, DELETE?

Karena sebenernya REST API yang bener sih (menurut gue aja kali ya?) itu emang satu URL yang bisa digunakan dengan satu method saja. Tujuannya apa? sebenernya tujuannya untuk mengirit URL aja.

Kan kebiasaan dari kita (kadang saya juga) adalah dengan menggunakan routing seperti ini:

  • /url/users/insert
  • /url/users/detail/{ID User}
  • /url/users/update/{ID User}
  • /url/users/delete/{ID User} Nah dengan REST API itu semua gaperlu ribet-ribet nulis Update, Delete, Detail. Mainkan semuanya dengan satu URL saja, biar ga ribet-ribet penamaan URLnya.

Tapi itu semua kembali ke developer dan team masing-masing. Tidak ada yang salah baik menggunakan metode diatas atau dengan REST API yang benar, yang penting adalah code rapih, terstruktur, reusable, dan pastinya harus well-maintaned ^^

Sekian yang dapat saya tulis, semoga apa yang saya tulis bermanfaat. Apabila kamu merasa blog ini bermanfaat untuk teman kamu yang baru belajar, jangan ragu untuk membagikannya ya ^^ Semakin banyak ilmu yang kamu bagikan, maka semakin banyak ilmu yang kamu serap.


Artikel ini merupakan konten legacy dari blog Medium (Tahun 2018). Beberapa konsep atau sintaks mungkin sudah mengalami perubahan pada versi terbaru.