Einleitung
Backend-Entwicklung ist das Fundament jeder Web-App – und KI beschleunigt hier jeden Schritt: API-Endpunkte, Middleware, Datenbank-Queries, Auth-Logik und Error Handling. In diesem Artikel findest du 10 Prompts für professionelle Backend-Entwicklung mit AI.
Inhaltsverzeichnis
- Prompt 1: REST API Endpunkt erstellen
- Prompt 2: Middleware entwickeln
- Prompt 3: Authentication implementieren
- Prompt 4: Datenbank-Integration
- Prompt 5: Request Validation
- Prompt 6: Error Handling Architektur
- Prompt 7: Caching-Strategie
- Prompt 8: Background Jobs & Queues
- Prompt 9: WebSocket-Server
- Prompt 10: Backend Testing
- FAQ
Prompt 1: REST API Endpunkt erstellen
Folglich profitierst du von einem besseren Verständnis dieser Konzepte.
Erstelle einen REST API Endpunkt:
Framework: [Express / Hono / FastAPI / Gin]
Ressource: [z.B. "Products"]
Datenbank: [PostgreSQL + Prisma / MongoDB + Mongoose]
Implementiere alle CRUD-Operationen:
1. GET /api/products (Liste mit Pagination, Filter, Sort)
2. GET /api/products/:id (Einzelnes Produkt)
3. POST /api/products (Erstellen mit Validierung)
4. PUT /api/products/:id (Update, nur eigene Ressourcen)
5. DELETE /api/products/:id (Soft Delete)
Für jeden Endpunkt:
- Request Validation (Zod / Joi Schema)
- Authentication Check (Bearer Token)
- Authorization (Owner oder Admin)
- Error Handling (404, 400, 401, 403, 500)
- Response Format: { success, data, meta, error }
- TypeScript Typen für Request und Response
Dateistruktur:
- routes/products.ts
- controllers/productController.ts
- services/productService.ts
- validators/productValidator.ts
Natürlich solltest du den generierten Code vor dem Einsatz testen.
Prompt 2: Middleware entwickeln
Dennoch solltest du einige Besonderheiten beachten.
Erstelle folgende Middleware für mein Backend:
Framework: [Express / Hono / Koa]
1. **Auth Middleware**: JWT validieren, User an Request anhängen
2. **Rate Limiter**: 100 req/min pro IP, 1000 für authenticated Users
3. **Request Logger**: Method, URL, Status, Duration (JSON-Format)
4. **Error Handler**: Global Error Handler mit Custom Error Classes
5. **CORS Middleware**: Konfigurierbare Origins, Methods, Headers
6. **Request ID**: UUID pro Request für Tracing
7. **Compression**: Gzip für Responses > 1KB
Für jede Middleware:
- TypeScript mit korrekten Typen
- Unit Test
- Konfigurierbar über Options-Object
- Reihenfolge der Middleware erklären
Im Grunde funktioniert dieser Ansatz mit allen gängigen AI-Tools.
Prompt 3: Authentication implementieren
Grundsätzlich gibt es dabei einige Punkte zu beachten.
Implementiere ein komplettes Auth-System:
Framework: [z.B. "Express + TypeScript"]
Strategie: [JWT / Session-basiert / OAuth 2.0]
Datenbank: [z.B. "PostgreSQL + Prisma"]
Features:
1. Registration (E-Mail + Passwort, mit E-Mail-Verifikation)
2. Login (E-Mail + Passwort → Access Token + Refresh Token)
3. Token Refresh (Refresh Token → neues Access Token)
4. Logout (Token Blacklist / Invalidation)
5. Passwort vergessen (Reset-Link per E-Mail)
6. Passwort ändern (mit altem Passwort bestätigen)
7. OAuth Login (Google, GitHub)
8. Role-based Access Control (Admin, User, Manager)
Security:
- Argon2id für Passwort-Hashing
- Access Token: 15min, Refresh Token: 7 Tage
- Rate Limiting auf Login (5 Versuche/min)
- Secure, HttpOnly, SameSite Cookies
- CSRF Protection
Ebenfalls sinnvoll ist es, verschiedene Varianten auszuprobieren.
Prompt 4: Datenbank-Integration
Insbesondere für den Einstieg sind die folgenden Informationen hilfreich.
Implementiere die Datenbank-Schicht:
ORM: [Prisma / Drizzle / TypeORM / SQLAlchemy]
Datenbank: [PostgreSQL / MySQL / MongoDB]
Erstelle:
1. **Repository Pattern**: CRUD-Operationen abstrahiert
2. **Connection Pool**: Konfiguration für Dev/Staging/Production
3. **Migrations**: Initial + Änderungs-Migrations
4. **Transactions**: Multi-Table Operations sicher
5. **Soft Delete**: deleted_at Pattern mit Query-Filter
6. **Pagination**: Cursor-basiert (für große Datenmengen)
7. **Full-Text Search**: Implementierung mit GIN Index
8. **Audit Log**: Automatisch wer, wann, was geändert hat
Best Practices:
- Kein ORM-Objekt über API-Grenzen leaken (DTOs nutzen)
- N+1 Query Prevention (Eager Loading konfigurieren)
- Connection Pool Monitoring
Prompt 5: Request Validation
Weiterhin ist es wichtig, die Grundlagen zu verstehen.
Erstelle ein Request Validation System:
Library: [Zod / Joi / class-validator]
Framework: [Express / Hono / NestJS]
Implementiere:
1. Schema-Definitionen für Body, Params, Query
2. Middleware die automatisch validiert
3. Fehler-Responses im einheitlichen Format
4. Custom Validators (z.B. "E-Mail existiert bereits")
5. Sanitization (trim, lowercase für E-Mail)
6. File Upload Validation (Typ, Größe, Dimensionen)
7. Nested Objects und Arrays validieren
8. Shared Types zwischen Frontend und Backend (Zod → TypeScript)
Beispiel-Schemas:
- User Registration
- Product Creation
- Search Query mit Pagination
- File Upload mit Metadata
Dementsprechend ist eine manuelle Überprüfung empfehlenswert.
Prompt 6: Error Handling Architektur
Außerdem gibt es hilfreiche Tools, die dich dabei unterstützen.
Erstelle eine Error Handling Architektur:
Framework: [Express / Hono / FastAPI]
Implementiere:
1. Custom Error Klassen-Hierarchie:
- AppError (Basis)
- ValidationError (400)
- AuthenticationError (401)
- ForbiddenError (403)
- NotFoundError (404)
- ConflictError (409)
- RateLimitError (429)
- InternalError (500)
2. Global Error Handler Middleware
3. Async Error Wrapper (kein try/catch in jedem Controller)
4. Error Logging (strukturiert, mit Request Context)
5. Client-freundliche Error Responses (kein Stack Trace)
6. Error Monitoring Integration (Sentry / Betterstack)
7. Graceful Shutdown bei uncaught Exceptions
8. Retry-Logic für transiente Fehler
Vor allem die detaillierten Anweisungen sorgen für präzisere Ergebnisse.
Prompt 7: Caching-Strategie
Zusammenfassend lässt sich sagen, dass dies ein zentraler Aspekt ist.
Implementiere eine Caching-Strategie:
Stack: [z.B. "Express + Redis + PostgreSQL"]
Caching-Ebenen:
1. **HTTP Cache Headers** (Cache-Control, ETag, Last-Modified)
2. **Application Cache** (Redis für häufige DB-Queries)
3. **Database Query Cache** (Materialized Views)
4. **CDN Cache** (für statische Assets + API-Responses)
Implementiere:
- Cache Middleware (konfigurierbar pro Route)
- Cache Invalidation (bei Datenänderung)
- Cache Key Strategy (user-spezifisch vs. global)
- TTL pro Cache-Typ (Session: 30min, Produktliste: 5min)
- Cache Stampede Prevention (Locking)
- Monitoring: Hit Rate, Miss Rate, Evictions
- Fallback: App funktioniert ohne Redis
Grundsätzlich kannst du diesen Prompt an deine Bedürfnisse anpassen.
Prompt 8: Background Jobs & Queues
Vor allem für den praktischen Einsatz sind diese Informationen wertvoll.
Implementiere ein Background Job System:
Library: [BullMQ / Agenda / Celery]
Queue: [Redis / RabbitMQ]
Use Cases:
1. E-Mail-Versand (Registration, Password Reset, Notifications)
2. Bild-Verarbeitung (Resize, Thumbnail-Erstellung)
3. Report-Generierung (CSV/PDF Export)
4. Daten-Import (CSV mit 100K+ Zeilen)
5. Scheduled Jobs (täglicher Cleanup, wöchentliche Reports)
Implementiere:
- Job Definition mit TypeScript Types
- Retry-Logic (3 Versuche, exponential Backoff)
- Dead Letter Queue (fehlgeschlagene Jobs)
- Priority Queues (E-Mail vor Report)
- Progress Tracking (API-Endpunkt für Job-Status)
- Graceful Shutdown (laufende Jobs beenden)
- Dashboard / Monitoring (Bull Board)
Prompt 9: WebSocket-Server
Natürlich gibt es dabei verschiedene Herangehensweisen.
Implementiere einen WebSocket-Server:
Library: [Socket.io / ws / Hono WebSocket]
Use Case: [z.B. "Echtzeit-Chat mit Rooms und Typing-Indicators"]
Features:
1. Connection Management (Auth beim Connect)
2. Rooms / Channels (Beitreten, Verlassen)
3. Event System (typisiert mit TypeScript)
4. Broadcast an Room / alle / einzelne User
5. Presence (wer ist online)
6. Typing Indicators
7. Reconnection-Handling (Client-seitig)
8. Message History (letzte 50 aus DB laden)
Scaling:
- Redis Adapter für Multi-Server Setup
- Sticky Sessions oder Socket.io Adapter
- Rate Limiting pro Client
Somit sparst du Zeit und erhältst qualitativ hochwertigeren Output.
Prompt 10: Backend Testing
Deshalb lohnt es sich, dieses Thema genauer zu betrachten.
Erstelle eine Test-Suite für mein Backend:
Framework: [z.B. "Express + Prisma + PostgreSQL"]
Test-Runner: [Vitest / Jest]
Test-Ebenen:
1. **Unit Tests**: Services, Validators, Utils
- Mocking: DB, External APIs, File System
- 100% Coverage für Business Logic
2. **Integration Tests**: API-Endpunkte
- Supertest für HTTP-Requests
- Test-Datenbank (Docker + Testcontainers)
- Seeding vor jedem Test
- Alle Status Codes testen (200, 201, 400, 401, 404)
3. **E2E Tests**: Kompletter Flow
- User Registration → Login → Create Resource → Delete
Setup:
- Test-Datenbank automatisch erstellen/migrieren
- Fixtures/Factories für Test-Daten
- CI/CD Integration (GitHub Actions)
- Coverage Report mit Threshold (80%)
Folglich erhältst du mit diesem Ansatz deutlich bessere Resultate.
FAQ
Express oder Hono?
Allerdings gibt es einige wichtige Unterschiede zu beachten.
Express: Größtes Ökosystem, meiste Tutorials und AI-Trainingsdaten. Hono: Moderner, schneller, native TypeScript-Unterstützung, läuft überall (Node, Deno, Bun, Edge). Für neue Projekte 2026: Hono hat die bessere DX.
Node.js oder Python für Backend?
Dabei spielen mehrere Faktoren eine wichtige Rolle.
Node.js/TypeScript: Wenn Frontend ebenfalls TypeScript ist (Code-Sharing). Python: Wenn ML/Data Science involviert ist. Beide haben exzellente AI-Unterstützung. Go: Für high-performance Microservices.
Wie strukturiere ich ein großes Backend?
Somit kannst du direkt mit der Umsetzung beginnen.
Feature-basierte Struktur: src/features/users/, src/features/products/. Jedes Feature hat eigene Routes, Controller, Services, Types. Shared Code in src/common/. Clean Architecture Prinzipien anwenden.
Verwandte Artikel:
Zuletzt aktualisiert: März 2026