Wie man in 30 Minuten eine REST API in TypeScript schreibt

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

So schreiben Sie eine REST API in TypeScript in 30 Minuten: Schritt-für-Schritt-Anleitung



Das Erstellen einer REST API ist eine grundlegende Aufgabe für jeden Backend-Entwickler. Die Verwendung von TypeScript fügt strenge Typisierung hinzu, verbessert die Lesbarkeit des Codes und reduziert die Anzahl der Fehler. In diesem Artikel werden wir durchgehen, wie man eine vollwertige REST API in TypeScript von Grund auf in nur 30 Minuten schreibt. Sie werden sich mit Express, TypeORM und den besten Praktiken der Code-Organisation vertraut machen.



1. Projekteinrichtung und Installation der Abhängigkeiten



Erstellen Sie zunächst ein neues Verzeichnis und initialisieren Sie das Node.js-Projekt:



mkdir my-rest-apicd my-rest-apinpm init -y


Installieren Sie die erforderlichen Pakete:



npm install express reflect-metadata typeorm sqlite3npm install -D typescript @types/node @types/express ts-node nodemon


Erstellen Sie die Datei tsconfig.json für die TypeScript-Konfiguration:



{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true,    "experimentalDecorators": true,    "emitDecoratorMetadata": true,    "skipLibCheck": true  },  "include": ["src/**/*"]}


2. Erstellung der grundlegenden Struktur und des Einstiegspunkts



Organisieren Sie die Ordnerstruktur wie folgt:



  • src/ — Hauptcode
  • src/controllers/ — Controller
  • src/entities/ — Datenbankentitäten
  • src/routes/ — Routen


Erstellen Sie die Datei src/index.ts — den Einstiegspunkt der Anwendung:



import "reflect-metadata";import express from "express";import { AppDataSource } from "./data-source";import { userRoutes } from "./routes/userRoutes";

const app = express();const PORT = process.env.PORT || 3000;

app.use(express.json());

AppDataSource.initialize() .then(() => { console.log("Database connected"); app.use("/api/users", userRoutes); app.listen(PORT, () => { console.log(`Server running on http://localhost:${PORT}`); }); }) .catch((error) => console.log(error));


Erstellen Sie nun src/data-source.ts für die TypeORM-Konfiguration:



import { DataSource } from "typeorm";import { User } from "./entities/User";

export const AppDataSource = new DataSource({ type: "sqlite", database: "database.sqlite", synchronize: true, logging: false, entities: [User],});


3. Definition der Entität und des Controllers



Erstellen Sie die Datei src/entities/User.ts — das Benutzermodell:



import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";

@Entity()export class User { @PrimaryGeneratedColumn() id!: number;

@Column() name!: string;

@Column() email!: string;

@Column({ default: true }) isActive!: boolean;}


Jetzt erstellen wir den Controller src/controllers/userController.ts:



import { Request, Response } from "express";import { AppDataSource } from "../data-source";import { User } from "../entities/User";

const userRepository = AppDataSource.getRepository(User);

export const getUsers = async (req: Request, res: Response) => { try { const users = await userRepository.find(); res.json(users); } catch (error) { res.status(500).json({ message: "Error fetching users" }); }};

export const getUserById = async (req: Request, res: Response) => { try { const user = await userRepository.findOneBy({ id: parseInt(req.params.id) }); if (!user) { return res.status(404).json({ message: "User not found" }); } res.json(user); } catch (error) { res.status(500).json({ message: "Error fetching user" }); }};

export const createUser = async (req: Request, res: Respo

Blogs

Buchempfehlungen