Zum Inhalt springen
APIOps meetups are back! Join us for the next one, more info at apiops.info.

API Design Prinzipien

Ein präziser Leitfaden für die Benutzerfreundlichkeit, Auffindbarkeit und Konsistenz von APIs, der auf bewährten Designphilosophien und den Bedürfnissen der Benutzer basiert.

  • Besseres Verständnis der API-Gestaltungsgrundsätze
  1. Consumer-first design: Wir beginnen jeden APIOps-Zyklus mit der Erfassung von Benutzerzielen und Fachbegriffen, damit APIs echte Probleme lösen.
  2. Konsistente Benennung und Verhalten: Anwendung gemeinsamer Konventionen für Ressourcen, Fehler und Formate, um APIs vorhersehbar zu machen.
  3. Vertragsgesteuert: Erfassen Sie die Schnittstelle mit OpenAPI oder AsyncAPI vor der Codierung, um die Teams aufeinander abzustimmen und Automatisierung zu ermöglichen.
  4. Benutzerfreundlichkeit und Auffindbarkeit: Bereitstellung einer klaren Dokumentation und von Beispielen, damit Entwickler schnell verstehen, wie die API zu verwenden ist.
  5. Sicher iterieren: Entwürfe in kleinen, abgestuften Schritten weiterentwickeln, damit Änderungen die bestehenden Kunden nicht stören.

Dieser Leitfaden enthält Best Practices und Standards für die Entwicklung und Implementierung von RESTful-APIs, um Sicherheit, Konsistenz, Benutzerfreundlichkeit und die Ausrichtung auf die Unternehmensziele zu gewährleisten. Er steht auch im Einklang mit der API-Audit-Checkliste.


  • Alle APIs müssen HTTPS erzwingen, um Daten während der Übertragung zu verschlüsseln.
  • Sensible Informationen (z. B. Tokens, Anmeldedaten, personenbezogene Daten) dürfen niemals in URLs oder Abfrageparametern übertragen werden. Verwenden Sie für solche Daten den Request Body.
  • Implementieren Sie RBAC mithilfe von Identitätsanbietern und setzen Sie Berechtigungen innerhalb der API-Logik durch.
  • Dokumentieren Sie rollenspezifische Zugriffskontrollen in der API-Dokumentation.
  • Reifegrade:
    • Grundlegend: Rollen sind definiert und der Zugriff wird manuell erzwungen.
    • Wachstum: Identitätsanbieter sind integriert.
    • Skalierung: Dynamische Rollenprüfungen basierend auf API-Nutzern.
    • Innovativ: Automatisierte, richtliniengesteuerte RBAC-Durchsetzung.
  • Behebt die 10 größten Risiken der OWASP API Security, darunter:
    • API6:2023 – Unrestricted Access to Sensitive Business Flows: Beschränken Sie sensible Geschäftsabläufe durch geeignete Authentifizierung und Autorisierung.
    • API7:2023 – Server-Side Request Forgery (SSRF): Validieren Sie Eingaben und bereinigen Sie Antworten, um SSRF-Schwachstellen zu verhindern.
    • API2:2023 – Defekte Authentifizierung: Stellen Sie robuste Authentifizierungsmechanismen (z. B. OAuth 2.0) sicher und validieren Sie Workflows für das Ablaufen von Tokens.
  • Sensible Daten, die in Datenbanken gespeichert sind, müssen im Ruhezustand mit branchenüblichen Algorithmen verschlüsselt werden.
  • Stellen Sie sicher, dass keine sensiblen Daten in Protokollen oder URLs erscheinen.

  • Verwenden Sie HTTP-Methoden konsistent:
    • GET: Daten abrufen, ohne den Serverstatus zu ändern.
    • POST: Erstellen Sie neue Ressourcen oder lösen Sie serverseitige Vorgänge aus.
    • PUT: Aktualisieren Sie vorhandene Ressourcen (verwenden Sie vollständige Ressourcen-Payloads).
    • PATCH: Aktualisieren Sie eine vorhandene Ressource teilweise.
    • DELETE: Entfernen einer Ressource.
  • Stellen Sie sicher, dass die Methoden PUT, PATCH und DELETE idempotent sind, d. h. dass mehrere identische Anfragen zum gleichen Ergebnis führen.
  • Validieren Sie alle HTTP-Methoden durch Integrationstests, um die Übereinstimmung mit dem erwarteten Verhalten sicherzustellen.

  • Alle APIs müssen Fehler in einem standardisierten Format zurückgeben. Beispiel:
{
"error": "invalid_request",
"message": "The request is missing a required parameter.",
"details": [
"Parameter 'user_id' is required."
]
}
  • Fügen Sie für Menschen lesbare Fehlermeldungen hinzu, um Entwicklern bei der Fehlerbehebung zu helfen.
  • Stellen Sie sicher, dass Fehlercodes und Beschreibungen mit der OpenAPI-Spezifikation übereinstimmen.
  • Verwenden Sie für jeden Vorgang die entsprechenden Statuscodes:
    • 200 OK: GET-, PUT- oder PATCH-Vorgänge erfolgreich.
    • 201 Created: Erfolgreicher POST-Vorgang, der zu einer neuen Ressource führt.
    • 204 No Content: Erfolgreicher DELETE-Vorgang.
    • 400 Bad Request: Ungültige Eingabe oder fehlende Parameter.
    • 401 Unauthorized: Authentifizierung fehlgeschlagen.
    • 403 Forbidden: Unzureichende Berechtigungen.
    • 404 Not Found: Ressource existiert nicht.
    • 429 Too Many Requests: Ratenbegrenzung überschritten.
  • Überprüfen Sie alle Fehlerszenarien, um korrekte Antworten und aussagekräftige Fehlermeldungen sicherzustellen.
  • Reifegrade:
    • Grundlegend: Grundlegende Fehlerbehandlung für wichtige Szenarien.
    • Wachstum: Detaillierte Fehlermeldungen für alle Endpunkte.
    • Skalierung: Automatisierte Fehlervalidierung mithilfe von Testtools.
    • Innovativ: KI-gestützte Erkenntnisse zu Fehlermustern und Vorhersagen.

  • Generieren Sie API-Dokumentation mithilfe der OpenAPI-Spezifikation (neueste unterstützte Version).
  • Fügen Sie Beispiele für alle Endpunkte hinzu, um Anfrage-/Antwort-Workflows zu veranschaulichen.
  • Reifegrade:
    • Grundlegend: Statische Dokumentation mit Beispielen.
    • Wachsend: Interaktive, automatisch generierte Dokumentation.
    • Skalierung: Entwicklertools für API-Tests.
    • Innovativ: Integrierte Entwicklerumgebungen zum Testen.
  • Fügen Sie einen Abschnitt „Erste Schritte“ in die Dokumentation ein, um neue Benutzer durch die Authentifizierung, gängige Arbeitsabläufe und das Testen von Endpunkten zu führen.
  • Verwenden Sie die Vorlage für die Erste-Schritte-Anleitung als Referenz.
  • Bieten Sie eine Sandbox-Umgebung an, die Produktionsschemata und Fehlercodes für Testzwecke widerspiegelt.
  • Überprüfen Sie die Sandbox-Ausrichtung durch API-Audit-Tests.

  • Verwenden Sie beschreibende, branchenübliche englische Begriffe für Ressourcennamen (z. B. books, users, loans).
  • Vermeiden Sie mehrdeutige Begriffe wie type oder status ohne zusätzlichen Kontext.
  • Verwenden Sie für Attributnamen camelCase (z. B. userId, bookTitle).
  • Vermeiden Sie Akronyme und Abkürzungen, um Klarheit zu gewährleisten.
  • Überprüfen Sie die Namenskonventionen während der OpenAPI-Validierung.

  • Unterstützen Sie die Lokalisierung mithilfe des Accept-Language -Headers für API-Antworten.
  • Stellen Sie lokalisierte Zeichenfolgen bereit und stellen Sie sicher, dass alle Fehlermeldungen übersetzt werden können.
  • Verwenden Sie das ISO 8601-Format für alle Datums- und Zeitfelder, einschließlich Zeitzonen.
"createdAt": "2024-12-21T10:00:00Z"
  • Validieren Sie lokalisierte Antworten und Fehlermeldungen durch Funktionstests.

  • Verwenden Sie semantische Versionsnummern (z. B. /v1, /v2), um wesentliche Änderungen zu kennzeichnen.
  • Vermeiden Sie grundlegende Änderungen innerhalb einer Version. Kündigen Sie alte Endpunkte mit ausreichender Vorankündigung.

Hinweise zur Abkündigung

  • Kommunizieren Sie Veraltungen über das Entwicklerportal und fügen Sie Header in API-Antworten ein:
Deprecation: true
Sunset: 2025-01-01
Link: <https://developer.portal.com/docs/deprecation>; rel="deprecation"

  • Verwenden Sie Standardparameter für die Paginierung:
    • page: Aktuelle Seitenzahl.
    • limit: Anzahl der Elemente pro Seite.
  • Filtern nach gängigen Attributen (z. B. title, author, genre) zulassen:
GET /books?title=harry&author=rowling
  • Überprüfen Sie anhand von API-Testfällen, ob die Paginierung und Filterung wie erwartet funktionieren.
  • Reifegrade:
    • Grundlegend: Unterstützung grundlegender Paginierung und Filterung.
    • Erweitert: Sicherstellung eines konsistenten Verhaltens über alle Endpunkte hinweg.
    • Skalierung: Optimieren Sie die Leistung für große Datensätze.
    • Innovativ: Intelligente Filterung und Unterstützung für vorausschauende Abfragen.

  • Verwenden Sie Tools wie Spectral, um OpenAPI-Spezifikationen auf Vollständigkeit und Konsistenz zu überprüfen.
  • Testen Sie Fehlerszenarien für alle Endpunkte, um korrekte Antworten und aussagekräftige Fehlermeldungen sicherzustellen.
  • Testen Sie APIs anhand der OWASP API Security Top 10 Risiken:
    • API6:2023 – Uneingeschränkter Zugriff auf sensible Geschäftsabläufe: Überprüfen Sie die ordnungsgemäßen Zugriffsbeschränkungen.
    • API7:2023 – Server-Side Request Forgery (SSRF): Validieren Sie Eingaben und Antworten, um SSRF-Schwachstellen zu verhindern.
    • API2:2023 – Fehlerhafte Authentifizierung: Testen Sie die Ablaufzeit von Tokens, Aktualisierungsworkflows und die Fehlerbehandlung.

10. Verfeinerung und Validierung des API-Styleguides

Abschnitt betitelt „10. Verfeinerung und Validierung des API-Styleguides“
  • Führen Sie regelmäßig Überprüfungen des Style Guides mit funktionsübergreifenden Teams (Produkt, Technik, Compliance) durch.
  • Sammeln Sie Feedback von API-Nutzern, um Probleme hinsichtlich der Benutzerfreundlichkeit zu beheben.
  • Verwalten Sie den Styleguide in einem versionskontrollierten Repository, um Änderungen zu verfolgen und die Abstimmung im Team sicherzustellen.
  • Integrieren Sie die Grundsätze des Styleguides in API-Linting-Tools und CI/CD-Pipelines.
  • Überprüfen Sie regelmäßig die OpenAPI-Spezifikationen anhand des Leitfadens mit automatisierten Tools wie Spectral.