RESTFUL API
REST(Representational State Transfer) merupakan sebuah
standarisasi suatu arsitektur dalam pengembangan suatu web, REST berguna
untuk komunikasi/interaksi antar data melalui protokol http atau https.
REST Sendiri terbagi menjadi 2 komponen yaitu REST Server dan Rest
Client, dimana Rest server berguna untuk melayani sebuah permintaan
data melalui http request sedangkan REST client meminta
data atau resource kepada server.
Penggunaan REST
bersamaan dengan API(apllication Programming Language), dimana API
berguna sebagai penghubung data. Penggabungan REST dan API di sebut webserive,
dimana dengan adanya web service maka sistem yang ingin
menggunakan tidak langsung mengambil data dari basis data,sehingga sistem berjalan
dengan cepat dan ringan. Representasi REST
API dalam bentuk notasi json dan XML, dimana data-data yang terlihat dalam
bentuk suatu objek dan array.
REST ini diperkenalkan oleh Roy Fielding pada tahun 2000. Lalu API itu
artinya Application Protocol Interface dimana adalah kumpulan dari subroutine definitions,
protocol dan juga tools untuk berkomunikasi data antar aplikasi software.
REST API mempunyai beberapa metode sebagai suatu interkasi.
Interkasi suatu data menggunakan sautu URL yang di ijinkan. Di bawah ini
beberapa methode http request yang sering digunakan.
- GET, berfungsi untuk mengambil resurce atau
data, baik single maupun multi data.
- POST, berfungsi untuk mengirimkan data resource baru.
- PUT, berfungsi untuk memperbarui data.
- DELETE, berfungsi untuk menghapus data resource.
- OPTIONS, berfungsi untuk operasi yang mendukung suatu data resource.
Di bawah ini merupakan Komponen Http Request
- Status/Response Code, merupakan sebuah
kode status ketika terjadi interaksi. Status berupa sebuah angka, dimana
angka tersebut mempunyai sebuah tujuan.
- Http Version, digunakan untuk menunjukan
versi http request.
- Response Header, merupakan sebuah meta
data terhadap data yang terurai.
- Response Body, merupakan data konten atau
sumber data yang diinginkan.
Komponen dari HTTP response:
1.
Response Code, status server terhadap request yang
diminta seperti 200, 401, 404 dan lainnya.
2.
HTTP Version
3.
Response Header yang berisi meta data seperti contect
type, cache tag dan yang lainnya.
4.
Repsonse Body, data/resource yang diberikan oleh server
baik itu berupa text, json ataupun xml
Cara Kerja REST API
Pertama harus ada sebuah REST server yang akan menyediakan
resource/data. Sebuah REST client akan membuat HTTP request ke server melalui
sebuah global ID atau URIs dan server akan merespon dengan mengirimkan balik
sebuah HTTP response sesuai yang diminta client.
Penggunaan REST API tidak menggunakan
penanda suatu data yang diakses, sebagai contoh penggunaan session yang
berfungsi sebagai login ke dalam sistem yang diminta. Keamanan data pada REST
API menggunakan JSON Web Token, dimana setiap terjadi interaksi data harus menggunakan
token yang sesuai. Token yang dihasilkan dapat berupa angka maupun huruf.
Identifikasi suatu token mempunyai waktu batas akses tertentu. Ketika data
sumber daya bersifat rahasia harus menggunakan JWT , namun ketika data sumber
data bersifat umum tidak perlu menggunakan JWT.
Keuntungan REST
API
- Hasil keluaran berapa data simpel yang
teruarai beruta notasi objek.
- Hasil keluaran mudah dipahami, karena
data yang di tampilkan cukup jelas.
- Pelayanan data dilakukan sesuai
permintaan dengan akses masing-masing.
- Berjalan dengan cepat dan ringan.
- Mendukung interaksi dengan basis data.
Kelemahan REST
API
- Membutuhkan Informasi tambahan yang
jelas, misalnya URL yang di pake, methode yang dipakai.
- Keamanan data kurang terjamin, karena
tidak ada suatu standarisai keamanan data.
- Penggunaan Meta data setiap platform pengambilan
data berbeda-beda.
- Tidak ada pesan yang menujukan informasi
secara rinc
Cara Membuat RESTful API dengan Node.js
1. Design RESTful API
Sebelum
membuat RESTful API, ada baiknya di kita definisikan dulu EndPoint dari RESTful API.
EndPoint
merupakan routes dari API yang akan kita buat.
2. Buat Database dan Table
3. Install Dependencies
Sebelum
menginstall dependencies, silahkan buat sebuah folder, disini saya membuat
sebuah folder dengan nama restful-api.
Dimana folder restful-api ini akan menjadi folder
project kita pada tutorial kali ini.
Mari kita
lanjut, Pada tutorial kali ini, kita membutuhkan 3 dependencies yaitu:
1. Express (node.js
framework)
2. MySQL (driver mysql
untuk node.js)
3. 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.
Sebelum
menginstall dependencies, kita perlu membuat package.json.
Untuk membuat
package.json, anda dapat menjalankan perintah berikut pada terminal.
npm init
Install
semua dependencies yang dibutuhkan dengan mengetikkan perintah berikut pada
terminal:
|
npm install --save express mysql body-parser
|
Perintah diatas akan
menginstall semua dependencies yang kita butuhkan yaitu: express, mysql, dan
body-parser.
4. Buat file Index.js
Ketikkan kode berikut:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
const mysql = require('mysql');
// parse application/json
app.use(bodyParser.json());
//create database connection
const conn = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'restful_db'
});
//connect to database
conn.connect((err) =>{
if(err) throw
err;
console.log('Mysql Connected...');
});
//tampilkan semua data product
app.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 id
app.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 baru
app.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 id
app.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 id
app.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 listening
app.listen(3000,() =>{
console.log('Server started on port 3000...');
});
|
5. Testing
|
|
Uji coba API
yang telah kita buat untuk memastikan RESTful API berjalan dengan baik.
Untuk menguji
API, ada banyak tools yang dapat digunakan.
Pada tutorial
ini, saya menggunakan POSTMAN untuk
menguji API yang telah kita buat.
Running project
dengan mengetikan perintah di terminal:
node index
Uji
Coba Metode HTTP
1.
Get All (GET)
Ketikan
URL database pada kolom URL Postman Pilih method GET, kemudian klik
tombol Send.
2.
Get Single (GET)
ketikan
URL database pada kolom URL Postman. Pilih method GET, kemudian
klik tombol Send.
3.
Create New (POST)
ketikan
URL database pada kolom URL Postman. Pilih method POST, kemudian
klik tombol Send.
4.
Update
(PUT)
ketikan
URL database pada kolom URL Postman. Pilih method PUT, kemudian
klik tombol Send.
5.
Delete (DELETE)
ketikan
URL database pada kolom URL Postman. Pilih method DELETE, kemudian
klik tombol Send.
Referensi :
Comments
Post a Comment