Skip to content

AI für Backend-Entwicklung

AI für Backend-Entwicklung: Node.js, Python und Go APIs mit ChatGPT & Claude bauen. 10 Prompts für Express, FastAPI, Middleware, Auth und Datenbank-Integration.

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

  1. Prompt 1: REST API Endpunkt erstellen
  2. Prompt 2: Middleware entwickeln
  3. Prompt 3: Authentication implementieren
  4. Prompt 4: Datenbank-Integration
  5. Prompt 5: Request Validation
  6. Prompt 6: Error Handling Architektur
  7. Prompt 7: Caching-Strategie
  8. Prompt 8: Background Jobs & Queues
  9. Prompt 9: WebSocket-Server
  10. Prompt 10: Backend Testing
  11. 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