Veraltete Web-API: Best Practices?

18

Schließlich müssen Sie Teile Ihrer öffentlichen Web-API abschreiben. Ich bin jedoch verwirrt, was der beste Weg wäre, dies zu tun. Wenn Sie über eine große App-Basis von Drittanbietern verfügen, scheint es der falsche Weg zu sein, nur alte Versionen der API abzureißen, da fast alle Apps über Nacht fehlschlagen würden. Sie können jedoch alte Web-APIs nicht für immer verfügbar halten, da sie möglicherweise veraltet sind oder es erhebliche Änderungen gibt, die die Arbeit damit unmöglich machen.

Was sind einige bewährte Methoden, um alte Web-APIs zu verwerfen?

TheLQ
quelle

Antworten:

16

Es hört sich so an, als hätte das Original-Poster die API bereits effektiv, aber informell abgelehnt (alles, was als "alte API" bezeichnet wird). Bis es jedoch angekündigt wird und Benutzer benachrichtigt werden, dass eine API veraltet ist, wird sie nicht offiziell veraltet.

Veraltete API ist eine inaktive Zwischenstufe des Codes. Es sind die letzten Riten. Dies ist der Zeitraum, in dem Anwender / Verbraucher ihre Apps für eine neuere API neu konfigurieren und sich von dieser API verabschieden können, um Frieden mit ihr zu schließen. Einige APIs verweilen möglicherweise länger als andere, aber zu diesem Zeitpunkt wissen wir, dass ihre Zeit nicht lange ist.

Gelöschte API ist eine Code-Beerdigung. Es gibt nichts mehr, was es tun kann, als richtig angeordnet und angemessen erinnert.

Viele API- und Service-Entwickler entscheiden sich für Code-Beerdigungen, anstatt die letzten Riten durchzuführen. Ich halte das jedoch für etwas riskant. Wenn bei der erstmaligen Einführung der API / des Service oder durch Erneuerung irgendeine Art von Service oder Supportzusage gemacht wurde, möchten Sie diese Zusage möglicherweise für einen angemessenen Zeitraum einhalten, bevor Sie die Beerdigung durchführen.

Für Nicht-Service-Bibliotheken denke ich, dass eine Hauptversionsversion, unabhängig vom Zeitraum, wahrscheinlich eine mehr als akzeptable und faire Periode garantierter Abwärtskompatibilität ist. Darüber hinaus hängt es vom Einfluss und der Lobbyarbeit der Benutzer ab, die Lebensdauer über diesen Zeitraum hinaus zu verlängern. Und wundern Sie sich nicht, wenn es von Zeit zu Zeit Einwände gibt, weil unersetzliche Abhängigkeiten von Drittanbietern in der Schwebe liegen und an bestimmte Versionen bestimmter Plattformen gebunden sind.

Ich vermute, dass Sie sich für Services entweder einen Zeitraum von sechs Monaten oder einem Jahr ansehen möchten, einfach aufgrund der Abweichung, von wem und wie ein Service konsumiert werden kann, und der entsprechenden Abweichung im Entwicklungszyklus von konsumierendem Projekt zu konsumierendem Projekt. Viele Projekte, die Ihren Service in Anspruch nehmen könnten, könnten noch im Vorfeld umfangreich gestaltet werden und einen Veröffentlichungszyklus von mehr als einem Jahr einplanen. Die meisten Meinungen der Entwickler von außen legen nahe, dass diejenigen mit langen Zeitplänen für die Einhaltung Ihrer Zykluszeiten verantwortlich sind, und diese Projekte, die lange Zyklen in Anspruch nehmen, sollten einen schnelleren Release-Zyklus einführen, und das mag zutreffen. Letztendlich ist das Datum des Löschens jedoch etwas, über das Sie mit den Benutzern verhandeln müssen.

Eine gute, aber nicht kugelsichere Strategie für die Nichtbeachtung könnte darin bestehen, die Nichtbeachtung zu melden, den Zeitrahmen für die beabsichtigte Löschung zusammen mit einer Aufforderung zur Abgabe eines Kommentars oder Widerspruchs in einem Umfrageformat der betreffenden API-Abschnitte hervorzuheben. Wenn Sie keine Kontaktliste mit Benutzern haben, da Ihr Dienst mit [halb] anonymem Zugriff betrieben wird, sollten Sie die Protokolle nach häufigen und aktiven Benutzern durchsuchen und die Benachrichtigung an den Host- oder Domänenadministrator senden, um sie nach eigenem Ermessen weiterzuleiten.

JustinC
quelle
Wow, sehr informative Antwort
TheLQ
7

Die meisten der von mir verwendeten Web-APIs (von Unternehmen wie Google, Yahoo! und Microsoft) haben eine "Verfallszeit". Entwickler werden innerhalb einer angemessenen Zeit (z. B. 3 bis 6 Monate) über die Features informiert, die abgeschrieben werden sollen, damit sie im Voraus genügend Zeit für ein Upgrade haben.

Sie können die Details der Verfallszeiten in Ihren Nutzungsbedingungen oder in anderen Dokumentationen hinzufügen, damit die Benutzer wissen, wie dies funktioniert. Dies würde bedeuten, dass jemand, der sich für die Verwendung Ihrer API entscheidet, weiß, mit welchen Zeitplänen er arbeiten muss. Sie können beispielsweise die Benutzer darüber informieren, dass sie einmal im Jahr ein Upgrade ihres Systems durchführen müssen, und dies mit einer Frist von 4 Monaten.

Es ist auch eine gute Idee, die Versionsnummerierung zu verwenden, damit Sie beispielsweise sagen können, dass Version 3 bald abgeschrieben wird. Stellen Sie also sicher, dass Ihr Code mit Version 4 funktioniert. Auf diese Weise wissen die Leute, ob ihre Anwendung mit Version funktioniert 4 dann sind sie bereit für den Sonnenuntergang.

Ewan Heming
quelle
1

Zusätzliche Informationen aus Prozesssicht:

  • Kommunikation mit allen Stakeholdern : Stellen Sie anderen Teams und API-Konsumenten eine klare und präzise Mitteilung über den Grund für die Nichtbeachtung der API, die Strategie, die Plan- und Zeitplandetails, die Versionsbedeutung und Alternativen zur Verfügung. Stellen Sie das HTTP entsprechend ein.

  • Plan und Zeitplan : Auf dem Plan sollten die wichtigsten Meilensteine ​​und das Zieldatum für das Ende der Abschreibung angegeben sein. Sie sollten die Verbraucher dazu auffordern und Daten angeben, an denen sie den Anruf ablehnen. Veranstalten Sie ein regelmäßiges Meeting, um den Prozess zu überwachen und die Verbraucher zu unterstützen.

  • Versionierung und Bereitstellung von Alternativen : Die Versionierung kann dazu beitragen, aktuelle Änderungen in Hauptversionen anzuzeigen und die Strategie der API-Veralterung umzusetzen.

  • Festlegen des HTTP-Antwort- Headers bei Sonnenuntergang : Die HTTP-Header spielen den technischen Teil der Warnung aus. API-Benutzer sollten diesen Codetyp überwachen, um zu verstehen, wann eine API veraltet ist.

  • Überwachen vor und nach : Überwachen Sie Ihre Kunden und informieren Sie alle Kunden, die die API nach einem bestimmten Zeitraum noch verwenden, über nützliche Informationen, um sicherzustellen, dass Sie keine Abandonware verpassen.

Rafael Gorski
quelle
0

Zusätzlich zu den vorhandenen Antworten sollten Sie beim Entfernen einen Drop-In-Ersatz oder einen Migrationsplan bereitstellen, damit Ihre Benutzer ihren Code aktualisieren können.

Versuchen Sie, das Entfernen von Funktionen zu vermeiden, ohne eine Alternative bereitzustellen - dies würde einige Ihrer Benutzer unglücklich machen.

Calmarius
quelle
Wenn es in Ihrer Web-API möglich ist, lassen Sie die veralteten Funktionen aktiv, lassen Sie sie jedoch einen informativen Fehler zurückgeben, anstatt nur zu brechen.
Fragen Sie nach Monica