REST API Design mit Claude Code: Best Practices 2026

Eine gut designte REST API ist intuitiv, konsistent und entwicklerfreundlich — schlechtes API-Design kostet Entwicklungszeit auf beiden Seiten. Claude Code kennt alle Best Practices: URL-Strukturen, HTTP-Semantik, Pagination, Versionierung und OpenAPI-Dokumentation.

URL-Struktur und HTTP-Methoden

URLsRESTful Resource-Naming

# Prompt: "Review diese API-Endpoints und korrigiere alles was nicht RESTful ist" # ❌ SCHLECHT — Claude Code identifiziert und erklärt: GET /getUsers # Verb im URL — NICHT RESTful POST /createUser # Verb im URL GET /user_list # Underscore + Singular statt Plural POST /user/delete/123 # DELETE-Aktion als POST # ✅ GUT — Claude Code generiert korrekte Version: GET /users # Liste aller User POST /users # Neuen User erstellen GET /users/{id} # Einzelnen User laden PUT /users/{id} # User komplett ersetzen PATCH /users/{id} # User teilweise aktualisieren DELETE /users/{id} # User löschen # Verschachtelte Ressourcen: GET /users/{id}/orders # Orders eines Users POST /users/{id}/orders # Order für User erstellen GET /users/{id}/orders/{oid} # Spezifische Order # Query Parameter für Filter/Sort/Search: GET /products?category=electronics&sort=price&order=asc&q=laptop

HTTP Status Codes richtig verwenden

StatusKorrekte Status Codes

200 OKErfolgreiche GET/PUT/PATCH
201 CreatedPOST erfolgreich, Location-Header
204 No ContentDELETE erfolgreich
400 Bad RequestValidation-Fehler
401 UnauthorizedNicht authentifiziert
403 ForbiddenAuthentifiziert, aber kein Zugriff
404 Not FoundRessource existiert nicht
409 ConflictEmail bereits vergeben
422 UnprocessableSemantischer Fehler
429 Too Many RequestsRate Limit erreicht
# Konsistentes Error-Response Format (RFC 7807): { "type": "https://api.example.com/errors/validation", "title": "Validation Failed", "status": 400, "detail": "The request body contains invalid fields", "errors": [ { "field": "email", "message": "Must be a valid email address" }, { "field": "age", "message": "Must be at least 18" } ] }

Pagination und Versionierung

VersionierungAPI stabil halten

# Cursor-based Pagination (besser als offset bei großen Datenmengen): GET /users?limit=20&cursor=eyJpZCI6MTAwfQ== # Response: { "data": [...], "pagination": { "nextCursor": "eyJpZCI6MTIwfQ==", "hasMore": true, "total": 1500 } } # API Versionierung — 3 Ansätze: # 1. URL Path (am verbreitetsten): GET /api/v1/users GET /api/v2/users # 2. Accept Header: Accept: application/vnd.example.v2+json # 3. Custom Header: API-Version: 2 # Claude Code empfiehlt: URL Path für Einfachheit, # Accept Header für strikte REST-Konformität

OpenAPI: Automatische Dokumentation

OpenAPISwagger/OpenAPI 3.1

# Prompt: "Generiere OpenAPI-Spec für diesen Express-Router" # openapi.yml — Claude Code erstellt vollständige Spec: openapi: '3.1.0' info: title: Users API version: '2.0' paths: /users: get: summary: List users parameters: - name: limit in: query schema: { type: integer, default: 20, maximum: 100 } responses: '200': content: application/json: schema: $ref: '#/components/schemas/UserList' # In Express mit zod-openapi automatisch generieren: import { OpenApiGeneratorV31 } from '@asteasolutions/zod-to-openapi' # → Keine manuelle YAML mehr — aus Zod-Schemas generiert!
API-Design Prompt: "Reviewe diese API-Endpoints auf REST-Konformität, konsistente Naming-Conventions und fehlende Error Responses. Generiere dann die vollständige OpenAPI 3.1 Spec."

API-Design Modul im Kurs

Im Claude Code Mastery Kurs: vollständiges REST API Design Modul — URL-Strukturen, HTTP-Semantik, Pagination, Versionierung, OpenAPI-Generierung und API-Governance.

14 Tage kostenlos testen →