Erstellen einer REST-API mit TypeScript und Express
TypeScript und Express sind eine leistungsstarke Kombination zum Erstellen robuster REST-APIs. TypeScript bietet Typsicherheit, bessere Tools und ein verbessertes Entwicklungserlebnis, während Express ein minimalistisches Webframework für Node.js ist. Diese Anleitung führt Sie durch die Schritte zum Erstellen einer REST-API mit TypeScript und Express.
Einrichten des Projekts
Beginnen Sie, indem Sie ein neues Verzeichnis für das Projekt erstellen und eine Node.js-Anwendung initialisieren.
mkdir typescript-express-api
cd typescript-express-api
npm init -y
Installieren Sie als Nächstes die erforderlichen Abhängigkeiten für Express und TypeScript.
npm install express
npm install --save-dev typescript ts-node @types/node @types/express
Erstellen Sie eine tsconfig.json
-Datei, um TypeScript zu konfigurieren. Führen Sie den folgenden Befehl aus:
npx tsc --init
Passen Sie die Datei tsconfig.json
den Anforderungen des Projekts an, aktivieren Sie Optionen wie "strict"
, "esModuleInterop"
und legen Sie das Ausgabeverzeichnis auf "dist"
fest.
Erstellen des Express-Servers
Erstellen Sie einen neuen Ordner mit dem Namen src
und darin eine Datei mit dem Namen index.ts
. Diese Datei dient als Einstiegspunkt für den Express-Server.
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}`);
});
Um den Server auszuführen, verwenden Sie den folgenden Befehl:
npx ts-node src/index.ts
Definieren von API-Routen
Erstellen Sie in src
einen neuen Ordner mit dem Namen routes
. Erstellen Sie in diesem Ordner eine Datei mit dem Namen userRoutes.ts
, um Routen für die Verarbeitung benutzerbezogener Anfragen zu definieren.
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;
Importieren Sie in der Datei index.ts
die userRoutes
und verwenden Sie sie in der Anwendung.
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);
Erstellen einer Controller- und Service-Schicht
Organisieren Sie den Code, indem Sie separate Ebenen für Controller und Dienste erstellen. Erstellen Sie zwei neue Ordner in src
: controllers
und services
.
Erstellen Sie im Ordner controllers
eine Datei mit dem Namen 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);
};
Erstellen Sie im Ordner services
eine Datei mit dem Namen 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;
};
Aktualisieren Sie userRoutes.ts
, um diese Controller zu verwenden:
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;
Testen der REST-API
Um die REST-API zu testen, verwenden Sie ein Tool wie Postman oder curl, um Anfragen an die Endpunkte zu senden. Starten Sie den Server und senden Sie eine GET-Anfrage an /api/users
und eine POST-Anfrage an /api/users
mit einer JSON-Nutzlast.
Abschluss
Wenn Sie diese Schritte befolgen, können Sie mit TypeScript und Express eine REST-API erstellen. TypeScript sorgt für Typsicherheit und eine bessere Entwicklungserfahrung, während Express ein einfaches und leistungsstarkes Framework zum Erstellen von RESTful-Diensten bietet. Dieses Setup kann durch Hinzufügen von Validierung, Fehlerbehandlung und komplexerer Geschäftslogik noch weiter verbessert werden.