TypeScript ve Express ile REST API oluşturma
TypeScript ve Express, sağlam REST API'leri oluşturmak için güçlü bir kombinasyondur. TypeScript, tür güvenliği, daha iyi araçlar ve gelişmiş geliştirme deneyimi sağlarken Express, Node.js için minimalist bir web çerçevesidir. Bu kılavuz, TypeScript ve Express kullanarak bir REST API oluşturma adımlarını ele alacaktır.
Projenin Kurulumu
Öncelikle proje için yeni bir dizin oluşturup Node.js uygulamasını başlatalım.
mkdir typescript-express-api
cd typescript-express-api
npm init -y
Daha sonra Express ve TypeScript için gerekli bağımlılıkları yükleyelim.
npm install express
npm install --save-dev typescript ts-node @types/node @types/express
TypeScript'i yapılandırmak için tsconfig.json
dosyasını oluşturun. Aşağıdaki komutu çalıştırın:
npx tsc --init
tsconfig.json
dosyasını projenin ihtiyaçlarına uyacak şekilde değiştirin, "strict"
, "esModuleInterop"
gibi seçenekleri etkinleştirin ve çıktı dizinini "dist"
olarak ayarlayın.
Express Server'ı Oluşturma
src
adında yeni bir klasör oluşturun ve içinde index.ts
adında bir dosya oluşturun. Bu dosya Express sunucusu için giriş noktası görevi görecektir.
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}`);
});
Sunucuyu çalıştırmak için aşağıdaki komutu kullanın:
npx ts-node src/index.ts
API Rotalarını Tanımlama
src
içinde routes
adında yeni bir klasör oluşturun. Bu klasörde, kullanıcıyla ilgili istekleri işlemek için rotaları tanımlamak üzere userRoutes.ts
adında bir dosya oluşturun.
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;
index.ts
dosyasına userRoutes
satırını içe aktarın ve uygulamada kullanın.
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);
Denetleyici ve Hizmet Katmanı Oluşturma
Denetleyiciler ve servisler için ayrı katmanlar oluşturarak kodu düzenleyin. src
: içinde iki yeni klasör oluşturun controllers
ve services
.
controllers
klasöründe userController.ts
adında bir dosya oluşturun.
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);
};
services
klasöründe userService.ts
adında bir dosya oluşturun.
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;
};
Bu denetleyicileri kullanmak için userRoutes.ts
'yı güncelleyin:
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;
REST API'yi test etme
REST API'yi test etmek için, uç noktalara istekler göndermek için Postman veya curl gibi bir araç kullanın. Sunucuyu başlatın ve /api/users
adresine bir GET isteği ve bir JSON yüküyle /api/users
adresine bir POST isteği yapın.
Çözüm
Bu adımları izleyerek, TypeScript ve Express kullanılarak bir REST API oluşturulabilir. TypeScript, tür güvenliği ve daha iyi bir geliştirme deneyimi eklerken, Express, RESTful servisleri oluşturmak için basit ve güçlü bir çerçeve sağlar. Bu kurulum, doğrulama, hata işleme ve daha karmaşık iş mantığı eklenerek daha da geliştirilebilir.