Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

REST-API-Design — Praktische Lektionen aus realen Projekten

08. 11. 2015 2 Min. Lesezeit CORE SYSTEMSdevelopment
REST-API-Design — Praktische Lektionen aus realen Projekten

In den letzten zwei Jahren haben wir mehr als ein Dutzend REST-APIs für verschiedene Kunden entworfen. Einige sind gut gelungen, andere weniger. Hier ist eine Zusammenfassung dessen, was funktioniert, was nicht, und was wir anders machen würden.

URL-Design — Konsistenz vor Cleverness

Substantive, keine Verben. /api/v1/users, nicht /api/v1/getUsers. Konsequent Plural. Verschachtelung nur eine Ebene tief — /users/123/orders ist in Ordnung, tiefer nicht. Bevorzugen Sie /order-items/789 mit Filterung.

Versionierung — URL-Pfad hat gewonnen

Wir haben drei Ansätze ausprobiert: URL-Pfad (/api/v1/), Header (Accept: application/vnd.myapp.v1+json) und Query-Parameter. URL-Pfad hat gewonnen — jeder Entwickler versteht ihn, er funktioniert im Browser, und Caches verstehen ihn auch.

Error Handling — Seien Sie ausführlich

Unsere erste API gab zurück: {"error": "Bad request"}. Nutzlos. Unser aktuelles Format (inspiriert von RFC 7807):

{
  "status": 422,
  "code": "VALIDATION_ERROR",
  "message": "Validation failed",
  "details": [
    {"field": "email", "message": "Invalid email address format"}
  ],
  "traceId": "abc-123-def"
}

HATEOAS — Theorie vs. Praxis

Wir haben Spring HATEOAS ausprobiert. Für öffentliche APIs ergibt es Sinn. Für interne APIs, bei denen das Frontend-Team nebenan sitzt? Overhead ohne Nutzen. Frontend-Entwickler haben die Links ignoriert und URLs trotzdem hartcodiert. In der Theorie schön, in der Praxis anders.

Dokumentation — Swagger ist Pflicht

Swagger generiert interaktive Dokumentation aus Annotationen. Ein Game-Changer für das Onboarding. Aber Contract-First ist besser — YAML manuell schreiben und Code daraus generieren. Mehr Arbeit, aber eine Single Source of Truth.

Sicherheit — OAuth 2.0 und JWT

OAuth 2.0 mit JWT-Tokens. Access Token im Authorization-Header, Refresh Token in einem httpOnly-Cookie. JWT ist self-contained — die Verifizierung erfordert keinen Aufruf an den Auth-Server. Aber JWT kann nicht widerrufen werden — wir lösen das mit einer Blacklist in Redis.

Top-5-Fehler, die wir gemacht haben

  1. 200 OK für Fehler zurückgeben (mit dem Fehler im Body)
  2. Kein Rate Limiting — DoS vom eigenen Frontend
  3. PUT statt PATCH für partielle Updates verwenden
  4. Kein Request/Response-Logging
  5. Übermäßiger Optimismus bezüglich Rückwärtskompatibilität

Eine API ist ein Produkt

Eine REST-API ist nicht nur ein technisches Detail — sie ist eine Schnittstelle für Menschen (Entwickler). Entwerfen Sie sie mit Empathie. Dokumentieren Sie sie. Versionieren Sie sie. Und vor allem — testen Sie sie aus der Perspektive des Konsumenten.

restapidesignhttp
Teilen:

CORE SYSTEMS

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.

Brauchen Sie Hilfe bei der Implementierung?

Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.

Kontaktieren Sie uns