Bygga ett REST API med TypeScript och Express
TypeScript och Express är en kraftfull kombination för att bygga robusta REST API:er. TypeScript ger typsäkerhet, bättre verktyg och förbättrad utvecklingsupplevelse, medan Express är ett minimalistiskt webbramverk för Node.js. Den här guiden går igenom stegen för att bygga ett REST API med TypeScript och Express.
Konfigurera projektet
Börja med att skapa en ny katalog för projektet och initiera en Node.js-applikation.
mkdir typescript-express-api
cd typescript-express-api
npm init -yInstallera sedan de nödvändiga beroenden för Express och TypeScript.
npm install express
npm install --save-dev typescript ts-node @types/node @types/expressSkapa en tsconfig.json fil för att konfigurera TypeScript. Kör följande kommando:
npx tsc --initÄndra filen tsconfig.json så att den passar projektets behov, aktivera alternativ som "strict", "esModuleInterop" och ställ in utdatakatalogen till "dist".
Skapa Express Server
Skapa en ny mapp med namnet src och inuti den, skapa en fil med namnet index.ts. Den här filen kommer att fungera som ingångspunkt för Express-servern.
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}`);
});För att köra servern, använd följande kommando:
npx ts-node src/index.tsDefiniera API-rutter
Skapa en ny mapp inuti src som heter routes. Skapa en fil med namnet userRoutes.ts i den här mappen för att definiera rutter för hantering av användarrelaterade förfrågningar.
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;I filen index.ts importerar du userRoutes och använder dem i programmet.
import userRoutes from './routes/userRoutes';
app.use('/api', userRoutes);Skapa en Controller och Service Layer
Organisera koden genom att skapa separata lager för kontroller och tjänster. Skapa två nya mappar inuti src: controllers och services.
Skapa en fil med namnet userController.ts i mappen controllers.
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);
};I mappen services skapar du en fil med namnet 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;
};Uppdatera userRoutes.ts för att använda dessa kontroller:
import { Router } from 'express';
import { getUsers, addUser } from '../controllers/userController';
const router = Router();
router.get('/users', getUsers);
router.post('/users', addUser);
export default router;Testar REST API
För att testa REST API, använd ett verktyg som Postman eller curl för att skicka förfrågningar till slutpunkterna. Starta servern och gör en GET-begäran till /api/users och en POST-begäran till /api/users med en JSON-nyttolast.
Slutsats
Genom att följa dessa steg kan ett REST API skapas med TypeScript och Express. TypeScript lägger till typsäkerhet och en bättre utvecklingsupplevelse, medan Express tillhandahåller ett enkelt och kraftfullt ramverk för att bygga RESTful-tjänster. Denna inställning kan förbättras ytterligare genom att lägga till validering, felhantering och mer komplex affärslogik.