Node.js - API RESTful

Hai, para pemrogram yang sedang belajar! Hari ini, kita akan memulai perjalanan yang menarik ke dunia Node.js dan API RESTful. Jangan khawatir jika istilah ini terdengar seperti bahasa asing saat ini - pada akhir panduan ini, Anda akan bisa berbicara dalam "REST" yang lancar! ?

Node.js - RESTFul API

Apa ituArsitektur REST?

REST, atau Representational State Transfer, adalah seperti sebuah set aturan tentang bagaimana komputer harus berbicara satu sama lain melalui internet. Bayangkan Anda di restoran. Anda (client) meminta pelayan (API) untuk menu (data). Pelayan tidak membuat makanan sendiri tetapi pergi ke dapur (server) untuk mendapatkan apa yang Anda butuhkan. Interaksi silang ini mirip dengan bagaimana REST bekerja!

Prinsip Utama REST:

  1. Client-Server: Pemisahan kekhawatiran antara antarmuka pengguna dan penyimpanan data.
  2. Stateless: Setiap permintaan dari client ke server harus mengandung semua informasi yang diperlukan untuk memahami permintaan itu.
  3. Cacheable: Tanggapan harus menentukan dirinya sendiri sebagai cacheable atau tidak.
  4. Interface Uniform: Cara standar untuk berinteraksi dengan server.
  5. Sistem Bertingkat: Client tidak bisa menentukan apakah dia terhubung langsung ke server atau ke intermediari.

Metode HTTP

Sekarang, mari bicarakan tentang metode HTTP. Ini seperti kata kerja yang memberitahu server tentang aksi yang harus dilakukan. Berikut ini adalah yang utama:

Metode Deskripsi Contoh Penggunaan
GET Mengambil data Mengambil profil pengguna
POST Membuat data baru Menambah postingan blog baru
PUT Memperbarui data yang ada Mengedit detail pengguna
DELETE Menghapus data Menghapus tweet
PATCH Mengubah data sebagian Memperbarui email pengguna saja

mari lihat contoh kode Node.js sederhana untuk ini!

Contoh Permintaan GET:

const http = require('http');

const server = http.createServer((req, res) => {
if (req.method === 'GET' && req.url === '/api/users') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ users: ['Alice', 'Bob', 'Charlie'] }));
}
});

server.listen(3000, () => {
console.log('Server berjalan di port 3000');
});

Dalam contoh ini, kita membuat server sederhana yang merespon permintaan GET ke '/api/users' dengan daftar JSON pengguna. Ketika Anda menjalankan kode ini dan mengunjungi 'http://localhost:3000/api/users' di browser Anda, Anda akan melihat daftar pengguna!

Contoh Permintaan POST:

const http = require('http');

const server = http.createServer((req, res) => {
if (req.method === 'POST' && req.url === '/api/users') {
let body = '';
req.on('data', chunk => {
body += chunk.toString();
});
req.on('end', () => {
const newUser = JSON.parse(body);
console.log('Pengguna baru ditambahkan:', newUser);
res.writeHead(201, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: 'Pengguna berhasil dibuat' }));
});
}
});

server.listen(3000, () => {
console.log('Server berjalan di port 3000');
});

Contoh ini menunjukkan bagaimana menangani permintaan POST untuk menambahkan pengguna baru. Itu mendengarkan data masuk, memprosesnya, dan mengirimkan tanggapan yang mengkonfirmasi pengguna telah dibuat.

Layanan Web RESTful

Sekarang kita mengerti dasarnya, mari masuk ke pembuatan API RESTful penuh menggunakan Express, kerangka kerja Node.js populer yang membuat pembuatan aplikasi web dan API menjadi mudah!

Pertama, mari instal Express:

npm init -y
npm install express

Sekarang, mari buat API RESTful sederhana untuk perpustakaan buku:

const express = require('express');
const app = express();
app.use(express.json());

let books = [
{ id: 1, title: 'The Great Gatsby', author: 'F. Scott Fitzgerald' },
{ id: 2, title: 'To Kill a Mockingbird', author: 'Harper Lee' }
];

// GET semua buku
app.get('/api/books', (req, res) => {
res.json(books);
});

// GET buku tertentu
app.get('/api/books/:id', (req, res) => {
const book = books.find(b => b.id === parseInt(req.params.id));
if (!book) return res.status(404).send('Buku tidak ditemukan');
res.json(book);
});

// POST buku baru
app.post('/api/books', (req, res) => {
const book = {
id: books.length + 1,
title: req.body.title,
author: req.body.author
};
books.push(book);
res.status(201).json(book);
});

// PUT (perbarui) buku
app.put('/api/books/:id', (req, res) => {
const book = books.find(b => b.id === parseInt(req.params.id));
if (!book) return res.status(404).send('Buku tidak ditemukan');

book.title = req.body.title;
book.author = req.body.author;
res.json(book);
});

// DELETE buku
app.delete('/api/books/:id', (req, res) => {
const book = books.find(b => b.id === parseInt(req.params.id));
if (!book) return res.status(404).send('Buku tidak ditemukan');

const index = books.indexOf(book);
books.splice(index, 1);
res.json(book);
});

app.listen(3000, () => console.log('Server berjalan di port 3000'));

Contoh ini membuat API RESTful lengkap untuk mengelola perpustakaan buku. mari cobalah:

  1. app.get() menangani permintaan GET, baik untuk semua buku maupun buku tertentu berdasarkan ID.
  2. app.post() menangani pembuatan buku baru.
  3. app.put() memungkinkan kita untuk memperbarui buku yang ada.
  4. app.delete() memungkinkan kita untuk menghapus buku dari perpustakaan.

Setiap rute mengikuti prinsip RESTful, menggunakan metode HTTP yang sesuai dan kode status.

Menguji API Anda

Untuk menguji API Anda, Anda dapat menggunakan tools seperti Postman atau curl. Berikut contoh penggunaan curl:

# GET semua buku
curl http://localhost:3000/api/books

# POST buku baru
curl -X POST -H "Content-Type: application/json" -d '{"title":"1984","author":"George Orwell"}' http://localhost:3000/api/books

# PUT (perbarui) buku
curl -X PUT -H "Content-Type: application/json" -d '{"title":"Judul Diperbarui","author":"Penulis Diperbarui"}' http://localhost:3000/api/books/1

# DELETE buku
curl -X DELETE http://localhost:3000/api/books/1

Dan itu saja! Anda telah membuat API RESTful pertama Anda menggunakan Node.js dan Express. Ingat, latihan membuat Anda mahir. Cobalah menambahkan fitur lain ke API perpustakaan buku Anda, seperti mencari buku atau mengurutkan mereka berdasarkan kriteria yang berbeda.

Membangun API adalah seperti membangun jembatan antara aplikasi software yang berbeda. Dengan setiap API yang Anda buat, Anda membuka kemungkinan baru untuk bagaimana program dapat berinteraksi dan berbagi data. Terus jelajahi, terus kode, dan yang paling penting, bersenang-senang dalam perjalanan Anda untuk menjadi ahli Node.js!

Credits: Image by storyset