Cara menggunakan objek javascript unfreeze

Dalam tutorial ini Anda akan belajar cara membuat RESTful API menggunakan node. js, ekspres, sekuel, dan MySQL

Ini bukan tutorial untuk pemula,

Jika Anda seorang pemula di node. js express, saya sarankan Anda mempelajari terlebih dahulu "Tutorial Express Js untuk Pemula".  

Mari kita mulai

 

Apa itu Sekuel?

Sequelize adalah sebuah node. js ORM berbasis janji (Object Relational Mapping) untuk Postgre, MySQL, MariaDB, SQLite, dan Microsoft SQL Server

Dengan memanfaatkan ORM, Anda dapat dengan mudah membuat aplikasi tanpa menulis perintah SQL (Structured Query Language).

Hal yang sama dengan Mongoose untuk mongoDB

Dalam tutorial ini, saya menggunakan MySQL

Jika Anda juga menggunakan MySQL, Anda akan menyukai tutorial ini

Meskipun tutorial ini menggunakan MySQL, bukan berarti Anda tidak bisa menerapkannya di Postgre, SQLite, atau Microsoft SQL Server, perbedaannya hanya terletak pada koneksi ke database.

Anda bisa melihatnya di dokumentasi sekuel untuk info lebih lengkap

Dapatkan paket hosting diskon 75% dan domain gratis + tambahan diskon 5% dengan menggunakan kupon. MEMIKIRKAN

Pesan sekarang

 

#1. Titik Akhir Desain

Ini penting

Sebelum membuat RESTful API, ada baiknya terlebih dahulu menentukan 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 EndPoint plan dari RESTful API yang akan kita buat

Cara menggunakan objek javascript unfreeze

 

#2. Membuat database dan tabel

Buat database baru di MySQL, Anda bisa menggunakan tools seperti SQLyog, PHPMyAdmin atau sejenisnya

Disini saya membuat database dengan nama "sequelize_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 sequelize_db;

Perintah SQL di atas akan membuat database dengan nama "sequelize_db"

Selanjutnya, buat tabel di database "sequelize_db".

Disini saya membuat tabel dengan nama "produk"

Jika Anda membuat tabel dengan nama yang sama itu lebih baik.  

Untuk membuat tabel “products” dapat dilakukan dengan mengeksekusi perintah SQL berikut

CREATE TABLE products(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200),
price DOUBLE,
createdAt DATE,
updatedAt DATE 
)ENGINE=INNODB;
_

Perintah SQL di atas akan membuat tabel bernama "produk" dengan bidang. id, judul, harga, dibuat, dan diperbarui

Sequelize mengharuskan Anda memiliki bidang. id, createAt, dan updatedAt

Jika Anda tidak memiliki bidang tersebut, maka akan terjadi kesalahan

 

#3. Instal Express, MySQL2, Sequelize, dan Cors

Buat folder di komputer anda, disini saya beri nama "sequelize-app"

Jika Anda membuat folder dengan nama yang sama, itu lebih baik

Anda bebas membuatnya di mana saja, baik di C, D, maupun di Desktop

Folder ini akan menjadi folder proyek utama

Kemudian buka folder "sequelize-app" menggunakan code editor, disini saya menggunakan Visual Studio Code

Saya juga merekomendasikan Anda untuk menggunakan Visual Studio Code

Anda dapat mengunduh Visual Studio Code di tautan berikut dan menginstalnya di komputer Anda

https. // kode. Studio visual. com/

Selanjutnya, buka terminal di Visual Studio Code pada bilah menu terminal

Setelah itu ketikkan perintah berikut untuk membuat file “package. json”

npm init –y

Selanjutnya install express, mysql2, sequelize, dan cors dengan mengetikkan perintah berikut di terminal

npm install express mysql2 sequelize cors

Seperti gambar berikut ini

Cara menggunakan objek javascript unfreeze

Selanjutnya, tambahkan kode berikut pada file "package. json”

"type": "module",
_

Hingga file "package. json" terlihat seperti berikut

{
  "name": "sequelize-app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "cors": "^2.8.5",
    "express": "^4.17.1",
    "mysql2": "^2.2.5",
    "sequelize": "^6.3.5"
  }
}

Ini dimaksudkan agar kita dapat menggunakan Sintaks Modul ES6 untuk mengekspor dan mengimpor modul

 

#4. Struktur Aplikasi

Agar aplikasi terstruktur lebih rapi, kita akan menerapkan pola MVC (Model-View-Controllers).

Buat folder "config", "controllers", "models", dan "routes" di dalam folder "sequelize-app"

Kemudian buat file "database. js" di folder "config", buat file "Product. js" di folder "controllers", buat file "Product. js" di folder "models", buat file "routes. js" di folder "rute", dan buat file "index. js" di dalam folder "sequelize-app".

Perhatikan gambar berikut untuk lebih jelasnya

Cara menggunakan objek javascript unfreeze

 

#5. Terhubung ke Basis Data

Buka file "database. js" yang terdapat di folder "config", lalu ketikkan kode berikut

// import sequelize
import { Sequelize } from "sequelize";

// create connection
const db = new Sequelize('sequelize_db', 'root', '', {
    host: 'localhost',
    dialect: 'mysql'
});

// export connection
export default db;
_

 

#6. Model

Buka file model "Product. js" yang terdapat di folder "models", lalu ketikkan kode berikut

// import sequelize 
import { Sequelize } from "sequelize";
// import connection 
import db from "../config/database.js";

// init DataTypes
const { DataTypes } = Sequelize;

// Define schema
const Product = db.define('products', {
  // Define attributes
  title: {
    type: DataTypes.STRING
  },
  price: {
    type: DataTypes.DOUBLE
  }
},{
  // Freeze Table Name
  freezeTableName: true
});

// Export model Product
export default Product;

 

#7. Pengontrol

Buka pengontrol file "Product. js" yang terdapat di folder "controllers", lalu ketikkan kode berikut

// Import model Product
import Product from "../models/Product.js";

// Get semua product
export const getProducts = async (req, res) => {
    try {
        const product = await Product.findAll();
        res.send(product);
    } catch (err) {
        console.log(err);
    }
}

// Get product berdasarkan id
export const getProductById = async (req, res) => {
    try {
        const product = await Product.findAll({
            where: {
                id: req.params.id
            }
        });
        res.send(product[0]);
    } catch (err) {
        console.log(err);
    }
}

// Create product baru
export const createProduct = async (req, res) => {
    try {
        await Product.create(req.body);
        res.json({
            "message": "Product Created"
        });
    } catch (err) {
        console.log(err);
    }
}

// Update product berdasarkan id
export const updateProduct = async (req, res) => {
    try {
        await Product.update(req.body, {
            where: {
                id: req.params.id
            }
        });
        res.json({
            "message": "Product Updated"
        });
    } catch (err) {
        console.log(err);
    }
}

// Delete product berdasarkan id
export const deleteProduct = async (req, res) => {
    try {
        await Product.destroy({
            where: {
                id: req.params.id
            }
        });
        res.json({
            "message": "Product Deleted"
        });
    } catch (err) {
        console.log(err);
    }
}
_

 

#8. Rute

Buka file "rute. js" yang terdapat di folder "routes", lalu ketikkan kode berikut

// Import express
import express from "express";
// Import Controller Product
import { 
    getProducts,
    getProductById,
    createProduct,
    updateProduct,
    deleteProduct
 } from "../controllers/Product.js";

 // Init express router
const router = express.Router();

// Route get semua product
router.get('/products', getProducts);
// Route get product by id
router.get('/products/:id', getProductById);
// Route create product baru
router.post('/products', createProduct);
// Route update product by id
router.put('/products/:id', updateProduct);
// Route delete product by id
router.delete('/products/:id', deleteProduct);

// export router
export default router;
_

 

#9. Indeks. js

Buka file “index. js" yang terdapat di folder "sequelize-app", lalu ketikkan kode berikut

CREATE TABLE products(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200),
price DOUBLE,
createdAt DATE,
updatedAt DATE 
)ENGINE=INNODB;
_0

 

#10. Pengujian

Untuk memastikan aplikasi berjalan dengan baik, jalankan aplikasi dengan mengetikkan perintah berikut di terminal

CREATE TABLE products(
id INT(11) PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200),
price DOUBLE,
createdAt DATE,
updatedAt DATE 
)ENGINE=INNODB;
_1

Jika berjalan dengan baik, maka akan muncul seperti gambar berikut

Cara menggunakan objek javascript unfreeze

Dalam tutorial ini, saya akan menggunakan POSTMAN untuk melakukan pengujian

Anda dapat mengunduh POSTMAN di tautan berikut

https. // www. tukang pos. com/unduh/

Unduh sesuai dengan OS (Sistem Operasi) Anda, lalu instal di komputer Anda

#10. 1 BUAT

Buka POSTMAN, lalu pilih metode "POST" => masukkan EndPoint pada kolom URL => pilih Body => pilih raw => pilih application/json => masukkan data dalam format json => klik tombol Send

Seperti gambar berikut ini

Cara menggunakan objek javascript unfreeze

Jika berhasil, akan ada pesan. "Product Created" seperti pada gambar di atas

Setelah itu, masukkan beberapa data lagi untuk mempermudah pengujian

#10. 2 BACA

Ubah metode menjadi "GET" dengan EndPoint yang sama, lalu klik tombol "Send".

Seperti gambar berikut ini

Cara menggunakan objek javascript unfreeze

Untuk menampilkan produk berdasarkan id, tambahkan id pada kolom URL seperti pada gambar berikut

Cara menggunakan objek javascript unfreeze

Pada gambar di atas, saya menunjukkan produk dengan id=2

#10. 3 PEMBARUAN

Pilih metode "PUT" => masukkan EndPoint beserta product id yang akan diupdate pada kolom URL => pilih Body => pilih raw => pilih application/json => masukkan data dalam format json => klik Tombol kirim

Seperti gambar berikut ini

Cara menggunakan objek javascript unfreeze

Jika pembaruan berhasil, akan ada pesan. "Produk Diperbarui" seperti pada gambar di atas

#10. 4 HAPUS

Pilih metode "HAPUS", lalu masukkan URL beserta id yang akan dihapus, lalu klik tombol "Kirim"

Seperti gambar berikut ini

Cara menggunakan objek javascript unfreeze

Jika penghapusan berhasil, akan ada pesan. "Produk Dihapus" seperti pada gambar di atas

Pada gambar di atas, saya menghapus produk dengan id=1

Terkait. Tutorial Membuat RESTful API Menggunakan Node JS, Express, dan MongoDB

Kesimpulan

Pembahasan kali ini adalah cara membuat RESTful API menggunakan node. js, ekspres, dan sekuel

Dengan demikian, Anda memiliki gambaran tentang cara membuat aplikasi tanpa menulis perintah SQL ke aplikasi tersebut