Terjemahan ke Bahasa Indonesia

Node.js - API RESTful

Halo, para pemula pemrogram! Hari ini, kita akan melangsungkan sebuah perjalanan menarik ke dunia Node.js dan API RESTful. Jangan khawatir jika istilah-istilah ini terdengar seperti bahasa alien saat ini - pada akhir tutorial ini, Anda akan bisa berbicara dalam "REST" yang fluas! ?

Node.js - RESTFul API

Apa ituArsitektur REST?

REST, atau Representational State Transfer, adalah seperti sebuah set aturan bagaimana komputer harus berbicara satu sama lain melalui internet. Bayangkan Anda di sebuah restoran. Anda (client) meminta pelayan (API) untuk sebuah menu (data). Pelayan tidak memasak makanan sendiri melainkan 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 perhatian 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. Uniform Interface: Sebuah cara standar untuk berinteraksi dengan server.
  5. Layered System: Client tidak bisa mengetahui apakah dia terhubung langsung ke server atau ke seorang intermediari.

Metode HTTP

Sekarang, mari bicara tentang metode HTTP. Ini adalah seperti kata kerja yang mengatakan kepada server apa aksi yang harus dilakukan. Berikut ini adalah yang utama:

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

Mari lihat contoh kode Node.js sederhana untuk ini!

ContohPermintaan 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 menciptakan 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!

ContohPermintaan 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 menghandle 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 dasar-dasar nya, 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 sebuah pustaka 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 menciptakan API RESTful lengkap untuk mengelola pustaka buku. mari cobalah:

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

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

Menguji API Anda

Untuk menguji API Anda, Anda dapat menggunakan alat 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 menciptakan API RESTful pertama Anda menggunakan Node.js dan Express. Ingat, latihan membuat Anda mahir. Cobalah menambahkan fitur lain ke API pustaka buku Anda, seperti mencari buku atau mengurutkan mereka berdasarkan kriteria yang berbeda.

Membangun API adalah seperti membuat jembatan antara aplikasi perangkat lunak yang berbeda. Dengan setiap API yang Anda buat, Anda membuka kemungkinan baru untuk bagaimana program dapat berinteraksi dan berbagi data. Terus menjelajahi, terus mengoding, dan terutama, bersenang-senang dalam perjalanan Anda untuk menjadi ahli Node.js!

Credits: Image by storyset