pada postingan kali ini kita akan :
Membuat RESTful-API dengan Node.js dan MySQL
langkah-langkah :
End Point adalah Routes dari API yang akan kita buat.
RESTful API menggunakan HTTP verbs.
HTTP verbs yang umum digunakan adalah GET, POST, PUT, dan DELETE.
Atau dikenal dengan istilah CRUD
buat database dan tabel
Database
CREATE DATABASE mhs_crud;Tabel
CREATE TABLE mahasiswa_api_nilai(mahasiswa_id INT(10) PRIMARY KEY AUTO_INCREMENT,mahasiswa_name VARCHAR(255),mahasiswa_nilai INT(10) )ENGINE=INNODB;Insert data kedalam tabel
INSERT INTO mahasiswa_api_nilai(mahasiwa_name,mahasiswa_nilai) VALUES('eko as','60'),('atoh','70'),('serli','75'),('budi','87'),('ai','92');Buat folder test\mahasiswa_restful_api di xampp\htdocs\
xampp\htdocs\test\mahasiswa_restful_api
Buat package.json di folder mahasiswa_restful_api
npm initLalu Install semua dependencies
npm install --save express mysql body-parserSetelah selesai buat file bernama index.js, index php dan koneksi.php maka susunan folder akan seperti ini
Koding index.js
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: 'mhs_crud'
});
//connect to database
conn.connect((err) =>{
if(err) throw err;
console.log('Mysql Connected...');
});
//tampilkan semua data mahasiswa
app.get('/api/mahasiswa_api_nilais',(req, res) => {
let sql = "SELECT * FROM mahasiswa_api_nilai";
let query = conn.query(sql, (err, results) => {
if(err) throw err;
res.send(JSON.stringify({"status": 200, "error": null, "response": results}));
});
});
//tampilkan data mahasiswa berdasarkan id
app.get('/api/mahasiswa_api_nilais/:id',(req, res) => {
let sql = "SELECT * FROM mahasiswa_api_nilai WHERE mahasiswa_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 mahasiswa baru
app.post('/api/mahasiswa_api_nilais',(req, res) => {
let data = {mahasiswa_name: req.body.mahasiswa_name, mahasiswa_nilai: req.body.mahasiswa_nilai};
let sql = "INSERT INTO mahasiswa_api_nilai 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 mahasiswa berdasarkan id
app.put('/api/mahasiswa_api_nilais/:id',(req, res) => {
let sql = "UPDATE mahasiswa_api_nilai SET mahasiswa_name='"+req.body.mahasiswa_name+"', mahasiswa_nilai='"+req.body.mahasiswa_nilai+"' WHERE mahasiswa_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 mahasiswa berdasarkan id
app.delete('/api/mahasiswa_api_nilais/:id',(req, res) => {
let sql = "DELETE FROM mahasiswa_api_nilai WHERE mahasiswa_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...');
});Buat web view untuk melihat isi dari database
Koding index.php untuk membuat view web
<!DOCTYPE html>
<html>
<head>
<title>Restfull-API</title>
</head>
<body>
<h2>Tabel nilai mahasiswa menggunakan Restfull-Api</h2>
<table border="2">
<tr>
<td>Id Mahasiswa(NIM)</td>
<td>Nama Mahasiswa</td>
<td>Nilai Mahasiswa</td>
</tr>
<?php
include 'koneksi.php';
$data = mysqli_query($koneksi, "select * from mahasiswa_api_nilai");
//apa bila data kosong
if (mysqli_num_rows($data) == 0) {
//jika data kosong akan menampilkan
echo '<mark> - Belum ada data yang disetujui - </mark>';
}else{
while ($d = mysqli_fetch_array($data)) {
?>
<tr>
<td><?php echo $d['mahasiswa_id']; ?></td>
<td><?php echo $d['mahasiswa_name']; ?></td>
<td><?php echo $d['mahasiswa_nilai']; ?></td>
</tr>
<?php
}
}
?>
</table>
</body>
</html> Koding koneksi.php untuk koneksikan view web dengan MySQL
<?php
//variable koneksi = (host, username, pasword, nama database)
$koneksi = mysqli_connect("localhost","root","","mhs_crud");
//cek koneksi
if (mysqli_connect_errno()) {
echo "koneksi database gagal " . mysqli_connect_error();
}
?>Jalanka ghaes
node indexSekarang kita uji End Pointnya
Dengan POSTMAN
koding untuk gambar dibawah:
+ Method GET(untuk melihat semua data)
http://localhost:3000/api/mahasiswa_api_nilais
+ Method GET(untuk melihat data dengan id 4)
http://localhost:3000/api/mahasiswa_api_nilais/4
+ Method POST(untuk menambah data menggunakan postman)
http://localhost:3000/api/mahasiswa_api_nilais
body -> raw -> pilih text menjadi JSON (application/json)
masukkan:
{
"mahasiswa_name": "eko ajah",
"mahasiswa_nilai": 76
}
lalu SEND
+ Method PUT(untuk edit data dengan id 7 saya edit nama)
http://localhost:3000/api/mahasiswa_api_nilais/7
body -> raw -> pilih text menjadi JSON (application/json)
masukkan:
{
"mahasiswa_name": "eko sapp",
"mahasiswa_nilai": 96
}
lalu SEND
+ Method DELETE(untuk melihat data dengan id 7)
http://localhost:3000/api/mahasiswa_api_nilais/7Menampilkan semua data dengan method GET terlihat sama datanya dengan web view
Menampilkan 1 data dengan dengan id method GET disini saya panggil yang id nya nomor 4
Tambah data dengan Method POST seperti koding diatas saya menambahkan nama mahasiswa "eko ajah" dan nilai "76"
Update data dengan Method PUT seperti koding diatas saya edit dari nama mahasiswa "eko ajah" dan nilai "76" menjadi nama mahasiswa "eko sapp" dan nilai "96"
Hapus data dengan Method DELETE seperti koding diatas saya hapus data yg ber id 7 dengan nama mahasiswa "eko sapp" dan nilai "96"
Sekian dari saya
Assalamu 'alaikum wr wb











ConversionConversion EmoticonEmoticon