Pemrograman Web Framework (PMI 1412) - Membuat REST API di Node.Js
Node.js adalah platform perangkat lunak pada sisi peladen dan aplikasi jaringan. Ditulis dengan bahasa JavaScript dan dijalankan pada Windows, Mac OS X, dan Linux tanpa perubahan kode program. Node.js memiliki pustaka peladen HTTP sendiri sehingga memungkinkan untuk menjalankan peladen web tanpa menggunakan program peladen web seperti Apache atau Lighttpd.
Node.js pertama kali diciptakan dan diperkenalkan untuk pengguna pada sistem Linux pada tahun 2009. Node.js dikembangkan oleh Ryan Dahl dan disponsori oleh Joyent, perusahaan tempat ia bekerja.(wikipedia.org)
Pengertian REST
Node.js adalah platform perangkat lunak pada sisi peladen dan aplikasi jaringan. Ditulis dengan bahasa JavaScript dan dijalankan pada Windows, Mac OS X, dan Linux tanpa perubahan kode program. Node.js memiliki pustaka peladen HTTP sendiri sehingga memungkinkan untuk menjalankan peladen web tanpa menggunakan program peladen web seperti Apache atau Lighttpd.
Node.js pertama kali diciptakan dan diperkenalkan untuk pengguna pada sistem Linux pada tahun 2009. Node.js dikembangkan oleh Ryan Dahl dan disponsori oleh Joyent, perusahaan tempat ia bekerja.(wikipedia.org)
REST (REpresentational State Transfer)
merupakan standar arsitektur komunikasi berbasis web yang sering
diterapkan dalam pengembangan layanan berbasis web. Umumnya menggunakan
HTTP (Hypertext Transfer Protocol) sebagai protocol untuk komunikasi data. REST pertama kali diperkenalkan oleh Roy Fielding pada tahun 2000.
Pada arsitektur REST, REST server menyediakan resources (sumber daya/data) dan REST client mengakses dan menampilkan resource tersebut untuk penggunaan selanjutnya. Setiap resource diidentifikasi oleh URIs (Universal Resource Identifiers) atau global ID. Resource tersebut direpresentasikan dalam bentuk format teks, JSON atau XML. Pada umumnya formatnya menggunakan JSON dan XML.
Pengertian API
API adalah singkatan dari Application Programming Interface. Merupakan
suatu “penghubung” yang memungkinkan suatu aplikasi untuk berinteraksi
dengan aplikasi lainnya dan berbagi data.
RESTful API merupakan implementasi dari API. RESTful itu protokol/aturan
untuk melakukan REST. Jadi RESTful itu udah pasti REST, namun REST
belum tentu bisa disebut RESTful. Walaupun terlihat sama tetapi mereka
berbeda.
Masukkan data ke tabel sebagai contoh
Langkah-langkah cara membuat RESTful API pada nodeJS
1. Langkah pertama yaitu tentunya kita harus mempunyai nodeJS. bagi kalian yang belum download nodeJS silahkan download disini.
2. Langkah kedua, kita membuat design RESTful API. disini kita akan
membuat restful api 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 database yaitu table product.
3. Selanjuntnya kita membuat database dan table yang akan kita gunakan,
disini kita akan membuat database dengan nama restful_db. Cara
membuatnya yaitu:
Membuat database dan tabel :CREATE DATABASE restful_db;CREATE TABLE product(product_id INT(11) PRIMARY KEY AUTO_INCREMENT,product_name VARCHAR(200),product_price INT(11) )ENGINE=INNODB;Masukkan data ke tabel sebagai contoh
INSERT INTO product(product_name,product_price) VALUES('Product 1','2000'),('Product 2','5000'),('Product 3','4000'),('Product 4','6000'),('Product 5','7000');4. Menginstall Depedencies, sebelum menginstall dependencies, silahkan buat sebuah folder, disini saya membuat sebuah folder dengan nama restful-api.
Dalam hal ini kita membutuhkan 3 dependencies yaitu:
- Express (node.js framework)
- MySQL (driver mysql untuk node.js)
- Body-parser (middleware untuk menghandle post body request)
Untuk menginstall dependencies pada node.js dapat dilakukan dengan mudah menggunakan NPM (Node Package Manager). Anda dapat menjalankan NPM pada Terminal atau Command Prompt.
Akan tetapi, pada tutorial kali ini saya tidak menggunakan Command Prompt, melainkan menggunakan Git Bash Terminal.
Jika belum memiliki aplikasi tersebut,dapat mendwonload di : https://git-scm.com/downloads Jika Anda telah menginstall Git Bash, silahkan buka folder restful-api yang telah dibuat sebelumnya.
Kemudian klik-kanan lalu pilih Gitbash Here.
Untuk membuat package.json kita ketikkan syntax :
Perintah diatas akan membuat sebuah file bernama package.json secara otomatis pada project Anda.
Kemudian Install semua dependencies yang dibutuhkan dengan mengetikkan perintah berikut :
Perintah diatas akan menginstall semua dependencies yang kita butuhkan yaitu: express, mysql, dan body-parser.
Jika di buka file package.json, maka akan terlihat seperti berikut :
{ "name": "restful-api", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "Ahmad Shobirin", "license": "ISC", "dependencies": { "body-parser": "^1.18.3", "express": "^4.16.4", "mysql": "^2.16.0" }}5. Kemudian buat file dengan nama index.js dalam folder restful-api. Lalu ketikkan syntax seperti berikut :
const express = require('express');const bodyParser = require('body-parser');const app = express();const mysql = require('mysql');// parse application/jsonapp.use(bodyParser.json());//create database connectionconst conn = mysql.createConnection({ host: 'localhost', user: 'root', password: '', database: 'restful_db'});//connect to databaseconn.connect((err) =>{ if(err) throw err; console.log('Mysql Connected...');});//tampilkan semua data productapp.get('/api/products',(req, res) => { let sql = "SELECT * FROM product"; let query = conn.query(sql, (err, results) => { if(err) throw err; res.send(JSON.stringify({"status": 200, "error": null, "response": results})); });});//tampilkan data product berdasarkan idapp.get('/api/products/:id',(req, res) => { let sql = "SELECT * FROM product WHERE product_id="+req.params.id; let query = conn.query(sql, (err, results) => { if(err) throw err; res.send(JSON.stringify({"status": 200, "error": null, "response": results})); });});//Tambahkan data product baruapp.post('/api/products',(req, res) => { let data = {product_name: req.body.product_name, product_price: req.body.product_price}; let sql = "INSERT INTO product SET ?"; let query = conn.query(sql, data,(err, results) => { if(err) throw err; res.send(JSON.stringify({"status": 200, "error": null, "response": results})); });});//Edit data product berdasarkan idapp.put('/api/products/:id',(req, res) => { let sql = "UPDATE product SET product_name='"+req.body.product_name+"', product_price='"+req.body.product_price+"' WHERE product_id="+req.params.id; let query = conn.query(sql, (err, results) => { if(err) throw err; res.send(JSON.stringify({"status": 200, "error": null, "response": results})); });});//Delete data product berdasarkan idapp.delete('/api/products/:id',(req, res) => { let sql = "DELETE FROM product WHERE product_id="+req.params.id+""; let query = conn.query(sql, (err, results) => { if(err) throw err; res.send(JSON.stringify({"status": 200, "error": null, "response": results})); });});//Server listeningapp.listen(3000,() =>{ console.log('Server started on port 3000...');}); 6. Kemudian kita tes koneksi yang telah kita buat untuk memastikan RESTful API berjalan dengan baik. Disini kita menggunakan POSTMAN untuk menguji API yang telah kita buat.
Jika Anda belom meiliki aplikasi teersebut, dapat mendownload POSTMAN di official websitenya: https://www.getpostman.com/ Download dan Install POSTMAN di komputer Anda kemudian jalankan.
7. Jalankan project dengan perintah :
Jika hasil seperti diatas,maka koneksi berhasil.
8.Untuk Get All Product (GET)
Kembali ke POSTMAN, dan ketikan URL berikut pada kolom URL Postman:
http://localhost:3000/api/products
Pada gambar diatas dapat dilihat bahwa EndPoint untuk mendapatkan semua data product berjalan dengan baik.
9. Get Single Product (GET)
Ketikan URL berikut pada kolom URL untuk mendapatkan single product:
http://localhost:3000/api/products/2
Pilih dengan method GET, kemudian klik tombol Send, maka Akan terlihat hasilnya seperti gambar berikut:
Pada gambar diatas dapat terlihat hanya satu data product yang ditampilkan, yaitu product dengan product_id=’2’ sesuai dengan parameter pada URL.
10. Create New Product (POST)
Ketikan URL berikut pada kolom URL untuk meng-create new product:
http://localhost:3000/api/products
Pilih method POST, kemudian masukan data berikut pada kolom JSON(application/json):
Kemudian klik tombol Send, maka Akan terlihat hasilnya seperti gambar berikut:
Jika Anda perhatikan pada bagian response, terdapat “affectedRows”: 1, dan “insertId”: 6.
Itu berarti terdapat satu data yang diinsert ke database dengan product_id=’6’.
11. Update Product (PUT)
Ketikan URL berikut pada kolom URL untuk meng-update product:
http://localhost:3000/api/products/2
Pilih method PUT, kemudian masukan data berikut pada kolom JSON(application/json):
Kemudian klik tombol Send, maka Akan terlihat hasilnya seperti gambar berikut:
Jika Anda perhatikan pada bagian response, terdapat “affectedRows”: 1, dan “changedRows”: 1.
Itu berarti terdapat satu data yang diupdate ke database dengan product_id=’2’ sesuai dengan parameter pada URL.
12. Delete Product (DELETE)
Ketikan URL berikut pada kolom URL untuk meng-hapus product:
http://localhost:3000/api/products/6
Pilih dengan method DELETE, kemudian klik tombol Send, maka Akan terlihat hasilnya seperti gambar berikut:
Jika Anda perhatikan pada bagian response, terdapat “affectedRows”: 1, “insertId”: 0 ,dan “changedRows”: 0.
Itu berarti terdapat satu data yang dihapus (delete) ke database dengan product_id=’6’ sesuai dengan parameter pada URL.
Referensi :
http://mfikri.com/artikel/restful-api
https://www.galihlprakoso.com/2019/04/apa-itu-rest-ful-api-pengertian-penjelasan.html
https://medium.com/@cecepahmadfauzi93/rest-rest-api-dan-client-server-527a15e68ff2






Komentar
Posting Komentar