REST API di Node.js
REST API di Node.js
REST (REpresentational State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan protocol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi. Tujuannya untuk menjadikan system dengan performa yang baik, cepat, dan mudah untuk dikembangkan (scale) terutama dalam pertukaran dan komunikasi data.
Design RESTful API
Sebelum membuat RESTful API, ada baiknya di kita definisikan dulu EndPoint dari RESTful API yang akan dibuat. EndPoint merupakan routes dari API yang akan kita buat. RESTful API menggunakan HTTP verbs. HTTP verbs yang umum digunakan adalah GET, POST, PUT, dan DELETE. GET untuk mendapatkan data dari server atau lebih dikenal dengan istilah READ, POST untuk meng-CREATE new data, PUT untuk UPDATE data, dan DELETE untuk menghapus data.Atau lebih dikenal dengan istilah CRUD (Create Read Update Delete).
Pada tutorial kali ini, saya akan sharing bagaimana membuat RESTful API sederhana untuk mengambil data dari server (GET), membuat data baru ke server (POST), mengupdate data ke server (PUT), dan menghapus data ke server (DELETE) dari suatu table di database yaitu table products.
Person REST API
Aplikasi ini merupakan contoh sederhana layanan server melalui REST (Representational State Transfer) yaitu mekanisme untuk komunikasi dengan server melalui protokol HTTP yang mudah untuk digunakan daripada memakai mekanisme protokol lama sepeti CORBA, SOAP ataupun RPC.
Aplikasi REST memakai metode HTTP seperti POST, PUT, GET dan DELETE untuk menambah, mengubah, mengambil ataupun menghapus resource yang ada pada server. Sehingga dalam pengembangan aplikasi khususnya dengan memakai Node.js, mekanisme REST sangat mudah untuk digunakan.
Susunan API
Berikut susunan API yang akan digunakan dalam contoh aplikasi ini. Contoh API ini mungkin tidak mengikuti best practice tapi penulis rasa sudah cukup untuk menggambarkan bagaimana menyusun aplikasi REST secara sederhana.

Cara Kerja
Cara kerja dari aplikasi Person REST ini cukup mudah. Hanya saja untuk antar muka dengan pengguna tidak melalui antar muka web seperti halnya kita mengakses halaman Facebook misalnya, karena secara umum aplikasi REST fungsinya lebih ke memberikan layanan data mentah sehingga developer bertanggung jawab penuh untuk apa data-data tersebut digunakan, apakah akan ditampilkan ke browser web atau digunakan pada aplikasi mobile android atau akan digunakan untuk mengaktifkan device elektronik seperti Arduino, Raspberry Pi dll.
Untuk aplikasi Person REST ini, data disimpan di database MongoDB melalui operasi CRUD (Create, Read, Update, Delete) yang dapat diakses melalui request API yang telah di sebutkan sebelumnya.
Diagram kerja aplikasi Person REST digambarkan pada diagram dibawah ini

Pengetesan operasi CRUD untuk aplikasi bisa dengan menggunakan bantuan alat Command Line Interface seperti cURL atau HTTPie ataupun tool yang lebih ramah seperti Postman dan bisa juga anda membangun antar muka web dengan memakai API yang disediakan oleh server Person ini. Contoh pengetesan untuk aplikasi Person REST ini bisa lihat pada sub-bab Pengetesan.
tutorial REST API Node.js
Pertama, pastiin lo punya Node JS nya dulu lah. Kalo engga ada download disini. Kalo udah langsung install ya.
Kedua, setelah install lo tulis di command prompt lu “npm -v” untuk cek versinya.
npm -v

Sip kalo gini berarti udah ready.
Ketiga, masuk ke folder manapun tempat lo ngebuat projek. Buat dulu foldernya abis itu masuk ke foldernya di CMD dan ketik “npm init”
npm init
Tujuannya adalah dia akan generate file package.json, sebelum lu nanya gue jelasin nih.
npm uses the package.json file to specify the version of a package that your app depends on.
artinya dilarang ngerokok.
NPM menggunakan package.json untuk menspesifikasikan versi dari paket (library) yang dibutuhkan di aplikasi buatan lu.

nah diatas adalah hasil dari package.json yang akan dimasukkan, lo bisa ganti versi, nama, deskripsi, file utama yang dijalanin, script test, author, bahkan licensenya. Tapi karena ini buat belajar ya enter enter enter aja biar cepet hehehe.
oke sekarang install package yang kita perluin, kita akan pake
- express package
- mysql package
- body-parser package
Package body-parser ini dipake untuk ngeparsing setiap request yang masuk melalui HTTP, baik itu dengan x-www-form-urlencoded, raw json, dan form data. Package ini ngebuat kita gampang untuk make method parsing dari apa saja yang disubmit melalui rest api kita.
nah cara installnya gini
npm install --save express mysql body-parser
cakep, kalo udah saatnya menunggu. Ini agak lama jadi mendingan lu tinggal ngopi aja atau pup (poop), tergantung kecepatan internet lu.
Setelah kedownload semuanya, sekarang saatnya kita ngoding.
Buat dulu tablenya yang akan kita pake, tablenya kaya gini aja biar simple.
CREATE TABLE IF NOT EXISTS `person` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(50) NOT NULL DEFAULT '0',
`last_name` varchar(50) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
Lalu, Buat file server.js, ini adalah file utama kita dimana bisa dibilang kaya index.php gitu deh.
var express = require('express'),
app = express(),
port = process.env.PORT || 3000,
bodyParser = require('body-parser'),
controller = require('./controller');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var routes = require('./routes');
routes(app);
app.listen(port);
console.log('Learn Node JS With Kiddy, RESTful API server started on: ' + port);
Disini kita juga ga akan masukin routes, controller, serta response value langsung kedalam server.js (ga dimasukin satu file), biar apa?
biar rapih aja, jadi sembari membiasakan lo ngoding terstruktur dan dengan file yang dipisah-pisah sesuai kebutuhannya ^.^
biar rapih aja, jadi sembari membiasakan lo ngoding terstruktur dan dengan file yang dipisah-pisah sesuai kebutuhannya ^.^
Oke setelah server.js dijalankan, kita akan ngebuat file koneksi antara si database dan aplikasi kita.
Buat sebuah file dan beri nama conn.js sebagai tempat mengkoneksikan aplikasi ke database ketika kita butuh koneksi ke database.
var mysql = require('mysql');
var con = mysql.createConnection({
host: "localhost",
user: "root",
password: "",
database: "namadatabase"
});
con.connect(function (err){
if(err) throw err;
});
module.exports = con;
Oke kalo udah sekarang saatnya buat file controller tempat kita ngoding. Sekarang buat file controller.js dan copy code dibawah~
'use strict';
var response = require('./res');
var connection = require('./conn');
exports.users = function(req, res) {
connection.query('SELECT * FROM person', function (error, rows, fields){
if(error){
console.log(error)
} else{
response.ok(rows, res)
}
});
};
exports.index = function(req, res) {
response.ok("Hello from the Node JS RESTful side!", res)
};
Kalo udah sekarang langsung buat res.js
loh fungsinya apa? pasti ada yang bertanya-tanya gitu kenapa gue harus buat res.js? Oke sedikit penjelasan ya.
Kalo kalian pernah baca tutorial yang gue tulis baik itu di Golang, Lumen. Pasti ada standarisasi respons yang akan dikembalikan. Contohnya gini

Nah standarisasi respon ini butuh banget cuy, buat si frontend developer. Fungsinya biar dia udah tau parameter apa yang dikembaliin dan valuenya seperti apa aja. Karena team yang baik adalah team yang saling memahami satu sama lain, kaya couple idaman gitu (yang jomblo kaya gue jgn baper) ahahaha.
Oke setelah intermezzo, lanjut ya buat file res.js dan copy paste kode dibawah.
'use strict';
exports.ok = function(values, res) {
var data = {
'status': 200,
'values': values
};
res.json(data);
res.end();
};
oke disini gue gue tulis res.json(data) nah data inilah yang akan dikembalikan jadi json dan fungsi res.end() adalah fungsi yang dipake untuk nutup koneksi ke database setelah data ditampilin ke json.
Sekarang saatnya buat file routes.js
Ya file ini dipake buat nulis routes atau endpoint apa saja yang ada di rest api kita.
Ya file ini dipake buat nulis routes atau endpoint apa saja yang ada di rest api kita.
'use strict';
module.exports = function(app) {
var todoList = require('./controller');
app.route('/')
.get(todoList.index);
app.route('/users')
.get(todoList.users);
};
nah mantep betul, kita udah berhasil ngebuat REST API yang baru Read aja. CUD nya menyusul di part 2.
Sekarang saatnya mencoba! Yak coba jalanin dengan tulis di CMD kita npm start kalo misalnya error tulis node server.js di command prompt.
node server.js

Nah kalo udah gitu berarti udah jalan, akses ke localhost:3000 dan lihat hasilnya.

Nah kalo gini udah berhasil berarti. Sekarang akses ke localhost:3000/users

Sumber:
http://mfikri.com/artikel/restful-api
https://idjs.github.io/belajar-nodejs/person_rest_api/index.html
https://medium.com/@kiddy.xyz/tutorial-restful-api-node-js-express-mysql-part-1-527868bfb9d1
Komentar
Posting Komentar