REST API | MINGGU 5 WEB FRAMEWORK

MEMBUAT REST API DENGAN NODE.JS
EKSPRESS DAN MYSQL



#PENGENRTIAN RESTful API 

REST (Representional State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan protokol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi. Dimana tujuannya adalah untuk menjadikan sistem yang memiliki performa yang baik, cepat dan mudah untuk di kembangkan (scale) terutama dalam pertukaran dan komunikasi data. — Developer Kudo

#MANFAAT DARI RESTful API

RESTful API ini akan menjadi jembatan komunikasi data antara client dan server.Sehingga, server tidak lagi mengirimkan HTML sebagai response, melainkan hanya data.Ya, hanya data.

Hal inilah yang dapat menghemat bandwidth server.Response dalam bentuk data inilah yang dapat digunakan untuk berbagai macam platform dari aplikasi yang berbeda bahasa permrograman.Response dalam bentuk data ini, biasanya berformat JSON atau XML.

Akan tetapi, yang paling umum digunakan adalah JSON.Dalam tutorial kali ini, kita akan membuat RESTful API dengan response data dalam format JSON.


#LANGKAH-LANGKAH MEMBUAT REST API#


#STEP 1

Membuat rancangan dari RESFUL yang kita buat


#STEP 2

MEMBUAT DATABASENYA

Untuk membuat database  ketik seperti ini dan namai sesuka kalian
1. CREATE DATABASE crud_db;
 Untuk membuat Table
CREATE TABLE product(
product_id INT(11) PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(200),
product_price INT(11)
)ENGINE=INNODB;
dan buatkan datanya seperti ini

INSERT INTO product(product_name,product_price) VALUES
('Product 1','2000'),
('Product 2','5000'),
('Product 3','4000'),
('Product 4','6000'),
('Product 5','7000');

 #STEP 3 - MEMBUAT DEPENDENCIES

Buat kan foldernya dulu

kalo saya buatnya seperti ini




klik kanan  lalu git bash here

ketikan npm init


kalo sudah selanjutnya ketikan  seperti dibawah ini

 

#STEP4  - MEMBUAT INDEX.JS

Buat file index berformat js dan ketikan isinya seperti ini

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: 'crud_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...');
});



#STEP 5  - TESTING

saya disini mengetest dengan menggunakan postman 

lakukan seperti ini

ini untuk melihat data di table product


 untuk melihat data pada id tertentu



untuk membuat/insert data baru


untuk mengedit




untuk menghapus



#REFRENSI TUTORIAL






#KESIMPULAN

REST MERUPAKAN PERTUKARAN DATA ANTAR BERBAGAI PLATFROM YANG TIDAK DIBANGUN DARI BAHASA YANG SAMA SUPAYA MENGURAI BEBAN SERVER

PADA KESEMPATAN KALI INI SAYA MEMPOSTING BAGAI MANA MEMBUAT RESTFUL API DENGAN NODE JS DAN MYSQL












0 komentar:

Posting Komentar