Pada tutorial kali ini saya akan membagikan cara membuat RESTful API menggunakan node. js, express, dan MySQL langkah demi langkah
Mari kita mulai
Dapatkan paket hosting diskon 75% dan domain gratis + tambahan diskon 5% dengan menggunakan kupon. MEMIKIRKAN
Pesan sekarang
Apakah Api adalah RESTful API?
RESTful API merupakan implementasi dari API (Application Programming Interface)
REST (REpresentational State Transfer) adalah arsitektur metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi.
Ini mungkin terdengar rumit tetapi sebenarnya tidak
Tujuannya adalah untuk membuat sistem dengan kinerja yang baik, cepat, dan mudah untuk diperluas (skala), terutama dalam pertukaran data dan komunikasi
Mengapa membuat RESTful API?
Jika Anda melihat arsitektur tradisional komunikasi data antara klien dan server terlihat seperti gambar berikut
Dimana client mengirimkan permintaan ke server melalui HTTP Request, dan server memberikan respon melalui HTTP Response
Respon yang diberikan oleh server biasanya dalam format HTML
Nah, bayangkan jika Anda harus memperluas situs web Anda ke aplikasi Seluler seperti Android atau iOS
Anda tahu bahwa aplikasi Android atau iOS tidak memerlukan HTML sebagai respon dari server
Karena Android dan iOS menggunakan bahasa pemrograman yang berbeda dan tidak mengenal HTML
Oleh karena itu, kita perlu membuat RESTful API
RESTful API ini akan menjadi jembatan komunikasi data antara client dan server
Jadi, server tidak lagi mengirimkan HTML sebagai respon, melainkan hanya data
Ya, hanya data
Hal inilah yang dapat menghemat bandwidth server
Respon berupa data ini dapat digunakan untuk berbagai platform dari aplikasi dengan bahasa pemrograman yang berbeda
Respon berupa data ini, biasanya dalam format JSON atau XML
Namun, yang paling umum digunakan adalah JSON
Pada tutorial kali ini, kita akan membuat RESTful API dengan response data dalam format JSON
Berikut adalah arsitektur dari RESTful API
Di mana klien dapat mengakses dari berbagai platform, seperti aplikasi web, desktop, atau aplikasi seluler
Keren bukan?
Oke, mari kita mulai
Langkah 1. Desain API tenang
Ini penting
Sebelum membuat RESTful API, ada baiknya kita tentukan terlebih dahulu EndPoint dari RESTful API yang akan dibuat
EndPoint adalah route dari API yang akan kita buat
RESTful API menggunakan kata kerja HTTP
Kata kerja HTTP yang umum digunakan adalah GET, POST, PUT, dan DELETE
GET untuk mendapatkan data dari server atau lebih dikenal dengan READ, POST untuk CREATE data baru, PUT untuk UPDATE data, dan DELETE untuk menghapus data
Atau lebih dikenal dengan CRUD (Create Read Update Delete)
Pada tutorial kali ini saya akan share cara 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 tabel di database, yaitu tabel produk
Berikut adalah rancangan dari RESTful API yang akan kita buat
Langkah 2. Buat Database dan Tabel
Buat database baru dengan MySQL, Anda bisa menggunakan alat seperti SQLyog, PHPMyAdmin atau sejenisnya
Disini saya membuat database dengan nama restful_db
Jika Anda membuat database dengan nama yang sama itu lebih baik
Untuk membuat database dengan MySQL, dapat dilakukan dengan mengeksekusi query berikut
CREATE DATABASE restful_db;Perintah SQL diatas akan membuat database dengan nama restful_db
Selanjutnya, buat tabel di database restful_db
Disini saya membuat tabel dengan nama produk
Jika Anda membuat tabel dengan nama yang sama itu lebih baik.
Untuk membuat tabel produk, dapat dilakukan dengan mengeksekusi perintah SQL berikut
CREATE TABLE product( product_id INT(11) PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(200), product_price INT(11) )ENGINE=INNODB; _Selanjutnya, masukkan beberapa data ke dalam tabel produk dengan menjalankan kueri berikut
INSERT INTO product(product_name,product_price) VALUES ('Product 1','2000'), ('Product 2','5000'), ('Product 3','4000'), ('Product 4','6000'), ('Product 5','7000');Perintah SQL di atas akan memasukkan 5 data ke dalam tabel produk
Langkah #3. Instal Dependensi
Sebelum install dependencies silahkan buat folder, disini saya membuat folder dengan nama restful-api
Perhatikan gambar berikut untuk lebih jelasnya
Dimana folder restful-api ini akan menjadi folder project kita di tutorial ini
Ayo lanjutkan,
Dalam tutorial ini, kita membutuhkan 3 dependensi yaitu
1. Ekspres (simpul. kerangka js)
2. MySQL (driver mysql untuk node. js)
3. Body-parser (middleware untuk menangani permintaan post body)
Untuk menginstal dependensi pada node. js dapat dilakukan dengan mudah menggunakan NPM (Node Package Manager)
Anda dapat menjalankan NPM di Terminal atau Command Prompt
Namun pada tutorial ini saya tidak menggunakan Command Prompt, melainkan menggunakan Git Bash Terminal
Saya sangat merekomendasikan Anda juga menggunakan Git Bash
Anda dapat mengunduh Git Bash di url berikut
https. //git-scm. com/download
Silahkan download sesuai platform anda, lalu install di komputer anda
Jika sudah menginstal Git Bash, silahkan buka folder restful-api yang sudah dibuat tadi
Kemudian klik kanan dan pilih Git Bash Here, seperti yang ditunjukkan pada gambar berikut
Maka akan muncul terminal seperti gambar berikut
Di terminal di atas, Anda dapat menginstal semua dependensi yang Anda perlukan untuk proyek Anda
Sebelum menginstal dependensi, kita perlu membuat sebuah paket. json
Untuk membuat paket. json, Anda dapat menjalankan perintah berikut di terminal
npm initSeperti gambar berikut ini
Perintah di atas akan membuat sebuah file bernama package. json secara otomatis di proyek Anda
Lebih-lebih lagi,
Instal semua dependensi yang diperlukan dengan mengetikkan perintah berikut di terminal
npm install --save express mysql body-parser_Seperti gambar berikut ini
Perintah di atas akan menginstal semua dependensi yang kita butuhkan yaitu. express, mysql, dan body-parser
Jika file paket dibuka. json, maka tampilannya akan seperti berikut
{ "name": "restful-api", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "M Fikri", "license": "ISC", "dependencies": { "body-parser": "^1.18.3", "express": "^4.16.4", "mysql": "^2.16.0" } }
Langkah #4. Buat file Indeks. js
Buat file dengan nama index. js. Seperti gambar berikut ini
Kemudian buka index. js dan ketik 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...'); }); _
Langkah #5. Pengujian
Uji API yang telah kita buat untuk memastikan RESTful API bekerja dengan baik
Untuk menguji API, ada banyak alat yang bisa digunakan
Pada tutorial ini saya menggunakan POSTMAN untuk menguji API yang telah kita buat
Jika Anda juga menggunakan POSTMAN itu lebih baik
Anda dapat mengunduh POSTMAN di situs resminya
https. // www. getpostman. com/
Download dan Install POSTMAN di komputer kemudian buka
Jika POSTMAN sudah terbuka maka akan terlihat seperti gambar berikut
Ok, waktunya untuk pengujian
Menjalankan proyek dengan mengetikkan perintah
node indexPada terminal seperti gambar berikut
Jika terlihat seperti gambar di atas, berarti sudah berjalan dengan baik
Mari kita uji EndPoint satu per satu
#1. Dapatkan Semua Produk (GET)
Kembali ke POSTMAN, dan ketik URL berikut di bidang URL Tukang pos
http. // localhost. 3000/api/produk
Pilih metode GET, lalu klik tombol Send, maka hasilnya akan seperti gambar berikut
Pada gambar diatas dapat dilihat bahwa EndPoint untuk mendapatkan semua data produk berjalan dengan baik
#2. Dapatkan Produk Tunggal (GET)
Ketik URL berikut di kolom URL untuk mendapatkan satu produk
http. // localhost. 3000/api/produk/2
Pilih dengan metode GET, lalu klik tombol Send, maka hasilnya akan seperti gambar berikut
Pada gambar di atas hanya ditampilkan satu data produk yaitu produk dengan product_id='2' sesuai dengan parameter pada URL
#3. Buat Produk Baru (POST)
Ketik URL berikut di kolom URL untuk membuat produk baru
http. // localhost. 3000/api/produk
Pilih metode POST, lalu masukkan data berikut di kolom JSON (application/json)
{ "product_name": "Product 6 Added", "product_price": 6000 } _Kemudian klik tombol Send, maka hasilnya akan terlihat seperti gambar berikut
Jika Anda melihat bagian respons, ada "affectedRows". 1, dan "masukkanId". 6
Artinya ada satu bagian data yang dimasukkan ke dalam database dengan product_id='6'
#4. Pembaruan Produk (PUT)
Ketik URL berikut di kolom URL untuk memperbarui produk
http. // localhost. 3000/api/produk/2
Pilih metode PUT, lalu masukkan data berikut di kolom JSON (application/json)
{ "product_name": "Product 2 Update", "product_price": 7000 } _Kemudian klik tombol Send, maka hasilnya akan terlihat seperti gambar berikut
Jika Anda melihat bagian respons, ada "affectedRows". 1, dan "berubahBaris". 1
Artinya ada satu data yang diupdate ke database dengan product_id='2' sesuai dengan parameter di URL
#5 Hapus Produk (HAPUS)
Ketik URL berikut di kolom URL untuk menghapus produk
http. // localhost. 3000/api/produk/6
Pilih dengan metode DELETE, lalu klik tombol Send, maka hasilnya akan seperti gambar berikut
Jika Anda melihat bagian respons, ada "affectedRows". 1, "masukkanId". 0 , dan "changedRows". 0
Artinya ada satu data yang dihapus (delete) ke database dengan product_id='6' sesuai parameter di URL
Terkait. Tutorial Membuat RESTful API dengan Node JS, Express, dan MongoDB
Kesimpulan
Pembahasan kali ini tentang cara membuat RESTful API sederhana dengan node. js, ekspres, dan mysql
REST (REpresentational State Transfer) adalah arsitektur metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi.
Tujuannya adalah untuk membuat sistem dengan kinerja yang baik, cepat, dan mudah untuk diperluas (skala), terutama dalam pertukaran data dan komunikasi
Dalam tutorial ini, Anda telah mempelajari cara membuat RESTful API sederhana dengan node. js, ekspres, dan mysql