Membangun REST API dengan TypeScript dan Express
TypeScript dan Express merupakan kombinasi yang hebat untuk membangun REST API yang tangguh. TypeScript menyediakan keamanan tipe, perkakas yang lebih baik, dan pengalaman pengembangan yang lebih baik, sementara Express merupakan kerangka kerja web minimalis untuk Node.js. Panduan ini akan memandu Anda melalui langkah-langkah untuk membangun REST API menggunakan TypeScript dan Express.
Menyiapkan Proyek
Mulailah dengan membuat direktori baru untuk proyek dan menginisialisasi aplikasi Node.js.
mkdir typescript-express-api
cd typescript-express-api
npm init -y
Berikutnya, instal dependensi yang diperlukan untuk Express dan TypeScript.
npm install express
npm install --save-dev typescript ts-node @types/node @types/express
Buat file tsconfig.json
untuk mengonfigurasi TypeScript. Jalankan perintah berikut:
npx tsc --init
Ubah file tsconfig.json
agar sesuai dengan kebutuhan proyek, aktifkan opsi seperti "strict"
, "esModuleInterop"
, dan atur direktori keluaran ke "dist"
.
Membuat Server Ekspres
Buat folder baru bernama src
dan di dalamnya, buat file bernama index.ts
. File ini akan berfungsi sebagai titik masuk untuk server Express.
import express, { Request, Response } from 'express';
const app = express();
const PORT = process.env.PORT || 3000;
app.use(express.json());
app.get('/', (req: Request, res: Response) => {
res.send('Hello, TypeScript and Express!');
});
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
Untuk menjalankan server, gunakan perintah berikut:
npx ts-node src/index.ts
Menentukan Rute API
Buat folder baru di dalam src
dengan nama routes
. Di folder ini, buat file dengan nama userRoutes.ts
untuk menentukan rute guna menangani permintaan terkait pengguna.
import { Router, Request, Response } from 'express';
const router = Router();
router.get('/users', (req: Request, res: Response) => {
res.json({ message: 'Get all users' });
});
router.post('/users', (req: Request, res: Response) => {
const user = req.body;
res.json({ message: 'User created', user });
});
export default router;
Dalam file index.ts
, impor userRoutes
dan gunakan dalam aplikasi.
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);
Membuat Controller dan Service Layer
Atur kode dengan membuat lapisan terpisah untuk pengontrol dan layanan. Buat dua folder baru di dalam src
: controllers
dan services
.
Dalam folder controllers
, buat file dengan nama userController.ts
.
import { Request, Response } from 'express';
import { getAllUsers, createUser } from '../services/userService';
export const getUsers = (req: Request, res: Response) => {
const users = getAllUsers();
res.json(users);
};
export const addUser = (req: Request, res: Response) => {
const newUser = req.body;
const user = createUser(newUser);
res.json(user);
};
Dalam folder services
, buat file dengan nama userService.ts
.
interface User {
id: number;
name: string;
}
let users: User[] = [];
export const getAllUsers = (): User[] => {
return users;
};
export const createUser = (user: User): User => {
users.push(user);
return user;
};
Perbarui userRoutes.ts
untuk menggunakan pengontrol ini:
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;
Menguji REST API
Untuk menguji REST API, gunakan alat seperti Postman atau curl untuk mengirim permintaan ke titik akhir. Jalankan server dan buat permintaan GET ke /api/users
dan permintaan POST ke /api/users
dengan muatan JSON.
Kesimpulan
Dengan mengikuti langkah-langkah ini, REST API dapat dibuat menggunakan TypeScript dan Express. TypeScript menambahkan keamanan tipe dan pengalaman pengembangan yang lebih baik, sementara Express menyediakan kerangka kerja yang sederhana dan canggih untuk membangun layanan RESTful. Pengaturan ini dapat ditingkatkan lebih lanjut dengan menambahkan validasi, penanganan kesalahan, dan logika bisnis yang lebih kompleks.