Zum Inhalt springen
DedicatedPHP Kontakt

So nehmen Sie eine API-Version außer Betrieb, ohne Integrationen zu beeinträchtigen

Eine sichere API-Abkündigung beginnt damit, API-Nutzer zu identifizieren, einen kompatiblen Übergang anzubieten und die tatsächliche Nutzung zu messen, bevor Routen oder Felder entfernt werden.

Diagramm zum API-Übergang mit API-Nutzern, alternativer Version, Umstellungsmetriken und kontrollierter Außerbetriebnahme

Eine Route, ein Antwortfeld oder eine API-Version zu entfernen, mag wie eine begrenzte Änderung erscheinen. Wenn jedoch Anwendungen, Partner oder automatisierte Prozesse von dieser Schnittstelle abhängen, können die Auswirkungen weit entfernt vom Team auftreten, das den Dienst betreut. Um zu entscheiden, wie Sie eine API-Version außer Betrieb nehmen, ohne Integrationen zu beeinträchtigen, müssen Sie wissen, wer sie nutzt, eine überprüfbare Alternative anbieten und die Außerbetriebnahme auf Belege statt allein auf ein Kalenderdatum stützen.

Die erste Unterscheidung betrifft die öffentliche Schnittstelle und die interne Implementierung. Eine PHP-Klasse zu refaktorieren, ohne den beobachtbaren Vertrag zu ändern, ist in der Regel eine interne Änderung. Eine JSON-Antwort zu ändern, einen Parameter nicht mehr zu akzeptieren oder das Verhalten einer Route zu ändern, wirkt sich auf Clients aus und erfordert eine Bewertung der Kompatibilität. Ein technisches Deployment ist auch nicht zwangsläufig mit einer Außerbetriebnahme gleichzusetzen: Die neue Version kann bereits deployed, aber noch nicht veröffentlicht oder für alle aktiviert sein.

API-Nutzer erfassen, bevor Sie die Außerbetriebnahme ankündigen

API-Nutzer erfassen, bevor Sie die Außerbetriebnahme ankündigen — guía visual de DedicatedPHP

Beginnen Sie damit, Signale aus mehreren Quellen zusammenzutragen. Dokumentation und API-Verträge geben an, was genutzt werden sollte; Traffic-Logs zeigen, was beobachtet wird; Zugangsdaten, Schlüssel oder Konten helfen dabei, Aufrufe Organisationen zuzuordnen. In der Regel reicht keine einzelne Quelle aus: Clients können Zugangsdaten gemeinsam nutzen oder sich nicht korrekt identifizieren.

  • Prüfen Sie Spezifikationen, Beispiele, SDKs, Integrationstests und Partnerdokumentation.
  • Analysieren Sie Anfragen nach Route, Version, Methode, API-Nutzer-Identität und Aktivitätszeitraum. Der Traffic allein zeigt nicht, welche Felder einer Antwort der Client verwendet; dafür sind spezielle Instrumentierung oder von den API-Nutzern bereitgestellte Informationen erforderlich.
  • Identifizieren Sie geplante Jobs und Systeme mit sporadischem Traffic. Dass diese Woche keine Aufrufe stattfinden, beweist nicht, dass eine Integration aufgegeben wurde.
  • Ordnen Sie jedem bekannten API-Nutzer interne Verantwortliche und, sofern möglich, externe Ansprechpartner zu.
  • Prüfen Sie, wie lange Logs aufbewahrt werden und ob sie sensible Daten enthalten, bevor Sie sie für diese Analyse verwenden.

Wenn sich API-Nutzer über die API nicht unterscheiden lassen, ist das ein Risikosignal und eine Möglichkeit zur Verbesserung. Eine geeignete Identifizierung und Metriken erleichtern künftige Übergänge. Vermeiden Sie es, vollständige Payloads oder unnötige personenbezogene Daten zu protokollieren: Für die Messung der Nutzung reichen in der Regel aggregierte Request-Metadaten mit Zugriffskontrollen aus.

Änderungen anhand des tatsächlichen Vertrags einordnen

Nicht jede Änderung erfordert denselben Übergang. Eine additive Änderung, etwa das Hinzufügen eines optionalen Felds ohne Änderungen an bestehenden Feldern, ist in der Regel kompatibel. Clients mit strikter Validierung können jedoch unbekannte Antwortfelder ablehnen. Bei einer unter bestimmten Bedingungen kompatiblen Änderung muss der API-Nutzer möglicherweise seine Konfiguration anpassen oder eine Alternative nutzen. Eine inkompatible Änderung verändert bestehende Annahmen und muss entsprechend behandelt werden, auch wenn nur eine einzelne Route oder Eigenschaft betroffen ist.

Bewerten Sie sowohl Anfragen als auch Antworten: Einen akzeptierten Parameter zu entfernen, eine Validierung zu verschärfen, einen Standardwert zu ändern, Statuscodes anzupassen oder ein Feld zu entfernen, kann Clients beeinträchtigen. Prüfen Sie außerdem die Bedeutung und nicht nur den Typ. Ein Feld, das weiterhin eine Zeichenfolge ist, aber etwas anderes bezeichnet, kann eine funktionale Inkompatibilität darstellen.

Dokumentieren Sie den aktuellen Vertrag, das neue Verhalten, die betroffenen API-Nutzer und die vorgeschlagene Alternative. Ist die Einordnung unklar, testen Sie mit repräsentativen Clients oder erhalten Sie die Kompatibilität aufrecht, bis genügend Belege vorliegen. Jede Änderung zu versionieren, kann zusätzliche Komplexität schaffen; neue Versionen Änderungen vorzubehalten, die tatsächlich inkompatibel sind, trägt dazu bei, dass das Versionsschema aussagekräftig bleibt.

Einen nachvollziehbaren und kommunizierbaren Übergang planen

Eine praktische Abfolge reduziert Überraschungen und ermöglicht Kurskorrekturen:

  1. Ankündigen: Beschreiben Sie, welche Schnittstelle außer Betrieb genommen wird, warum dies geschieht, wodurch sie ersetzt wird und welche API-Nutzer betroffen sein könnten. Veröffentlichen Sie die Informationen über die Kanäle, die diese API-Nutzer tatsächlich nutzen.
  2. Eine Alternative anbieten: Dokumentieren Sie die Route, die Parameter, Beispiele und Verhaltensunterschiede. Stellen Sie nutzbare Anleitungen für die Migration und Tests bereit.
  3. Die Umstellung messen: Beobachten Sie die Nutzung der alten und der neuen Schnittstelle pro API-Nutzer. Legen Sie vorab fest, was als Umstellung gilt und welche Ausnahmen geprüft werden müssen.
  4. Kontrolliert außer Betrieb nehmen: Entfernen Sie den Zugriff, wenn die verbleibende Nutzung null oder erklärt ist, die Tests bestanden sind und ein Verfahren zur Reaktion auf Vorfälle besteht.

Die Mitteilung sollte die Route oder Version, das geplante Datum, gegebenenfalls die Zeitzone zur Vermeidung von Missverständnissen, die Auswirkungen und den Weg zur Anforderung von Unterstützung nennen. Das Datum sollte den API-Nutzern ausreichend Zeit für Planung und Tests lassen; eine allgemein gültige Frist gibt es nicht. Wenn die Umstellung noch nicht abgeschlossen ist, kann es sicherer sein, den Termin zu überdenken, als ihn auf Kosten der Unterbrechung kritischer Integrationen einzuhalten.

Wenn die Umgebung es zulässt, kann eine Warnung in Antworten oder Headern die Ankündigung ergänzen und dabei helfen, Clients zu erkennen, deren Betreiber die Dokumentation nicht konsultieren. Betrachten Sie dies nicht als einzigen Kommunikationskanal: Manche API-Nutzer prüfen solche Signale nicht. Die schrittweise Freigabe der Änderung – etwa zunächst nur für Test-Clients oder eine vereinbarte Gruppe – unterscheidet sich von der Bekanntgabe der Außerbetriebnahme; beide Maßnahmen erfüllen unterschiedliche Zwecke.

Kompatibilität testen und mit Metriken überprüfen

Überführen Sie den Vertrag vor der Änderung in automatisierte Tests. Tests der Annahmen von API-Clients überprüfen die von jedem Client angegebenen Erwartungen; Provider-Tests stellen sicher, dass die API diese Verträge weiterhin erfüllt. Ergänzen Sie Integrationstests für Authentifizierung, Validierung, Fehler sowie relevante Anwendungsfälle für Paginierung oder Limits. In PHP können diese Prüfungen in CI zusammen mit den Anwendungstests ausgeführt werden, ersetzen aber nicht die Beobachtung des tatsächlichen Traffics.

Legen Sie eine Baseline und Metriken fest, mit denen sich Versionen vergleichen lassen: Anfragen pro API-Nutzer und Route, Fehler sowie der Anteil des Traffics, der auf die Alternative entfällt. Um herauszufinden, welche Antwortfelder ein Client verwendet, benötigen Sie spezielle Instrumentierung oder von den API-Nutzern bereitgestellte Daten; aus protokollierten Anfragen allein lässt sich dies nicht ableiten. Wählen Sie einen Zeitraum, der bekannte Nutzungszyklen abdeckt. Die Daten müssen im Kontext interpretiert werden: Ein API-Nutzer ohne Aufrufe während einer Saison kann bei einem Monatsabschluss, einer Verlängerung oder einer jährlichen Aufgabe wieder aktiv werden.

Üben Sie den Außerbetriebnahmeprozess auch in einer repräsentativen Umgebung. Prüfen Sie, ob bei Aufrufen der alten Schnittstelle Alarme ausgelöst werden und ob das Team sie einer Identität und einer verantwortlichen Person zuordnen kann. Vermeiden Sie, dass die Messung davon abhängt, große Logmengen manuell zu durchsuchen.

Auf verbleibende Nutzung reagieren und einen Rollback vorbereiten

Wenn ein Client die Schnittstelle weiterhin nutzt, stellen Sie zuerst fest, ob der Traffic legitim ist, woher er stammt und welche Operation ausgeführt wird. Prüfen Sie gemeinsam genutzte Zugangsdaten, Softwareversionen und Prozesse zur Stilllegung, bevor Sie zu dem Schluss kommen, dass der API-Nutzer die Mitteilung ignoriert hat. Kontaktieren Sie die zuständige Person mit konkreten Belegen und Migrationsschritten; legen Sie keine Daten anderer API-Nutzer offen.

Zu den Optionen zählen, den Übergang vorübergehend zu verlängern, eine begrenzte Ausnahme zu vereinbaren oder die Außerbetriebnahme in Gruppen vorzunehmen, sofern die Architektur dies zulässt. Ist es bereits zu einer Unterbrechung gekommen, prüfen Sie, ob das frühere Verhalten vorübergehend und auf sichere Weise wiederhergestellt werden kann oder ob sich der Client auf eine kompatible Alternative umleiten lässt. Ein Rollback darf weder Sicherheitslücken wiederherstellen noch Sicherheitsverpflichtungen widersprechen. Dokumentieren Sie, wer die Entscheidung trifft, welche Bedingung den Rollback auslöst und wie darüber kommuniziert wird.

Checkliste zum Abschluss der Außerbetriebnahme

Checkliste zum Abschluss der Außerbetriebnahme — guía visual de DedicatedPHP
  • Für bekannte API-Nutzer sind Verantwortliche, Status und Kontaktweg erfasst.
  • Die Änderung wurde anhand des Vertrags eingeordnet, und die Alternative ist getestet und dokumentiert.
  • Mitteilungen, Termin und Ausnahmen wurden über geeignete Kanäle kommuniziert.
  • Die Metriken decken relevante Nutzungszeiträume ab, und verbleibender Traffic ist erklärt.
  • Provider- und Client-Tests, Alarme und das Rollback-Verfahren sind überprüft.
  • Nach der Außerbetriebnahme werden Fehler und Anfragen geprüft sowie Spezifikationen, SDKs, Beispiele und Dokumentation aktualisiert.

Die Außerbetriebnahme ist abgeschlossen, wenn der Dienst den veralteten Vertrag nicht mehr bereitstellt, betroffene API-Nutzer eine bekannte Alternative haben und während eines repräsentativen Zeitraums keine verbleibende Nutzung festgestellt wird – im Rahmen der bekannten Einschränkungen von Instrumentierung und Beobachtungsabdeckung. Logs und Metriken liefern Belege, beweisen jedoch nicht, dass es keine unbekannten API-Nutzer oder sporadische Nutzung gibt. Dieses Kriterium macht das Entfernen zu einer kontrollierten betrieblichen Entscheidung statt zu einer Wette, die allein darauf beruht, dass die neue Version bereits verfügbar ist.

Möchten Sie diese Ideen in Ihrem Projekt anwenden?Lass uns über deine PHP-Plattform sprechen.
Verwandten Dienst anzeigen