Déprécier une API Web: Meilleures pratiques?


18

Finalement, vous devez déprécier certaines parties de votre API Web publique. Cependant, je ne sais pas quelle serait la meilleure façon de le faire. Si vous avez une grande base d'applications tierces, simplement retirer les anciennes versions de l'API semble être la mauvaise façon de le faire, car presque toutes les applications échoueraient du jour au lendemain. Cependant, vous ne pouvez pas garder les anciennes API Web disponibles pour toujours car elles peuvent être obsolètes ou des changements importants rendent le travail impossible.

Quelles sont les meilleures pratiques pour déprécier les anciennes API Web?

Réponses:


17

Il semble que l'affiche originale ait déjà été efficace, mais a déprécié de manière informelle son API (tout ce qui est appelé «ancienne API»). Cependant, tant qu'elle n'est pas annoncée et que les utilisateurs ne sont pas informés qu'une API est obsolète, elle n'est pas officiellement obsolète.

L'API obsolète est une étape de code provisoire et inactive. Ce sont les derniers rites. C'est la période qui permet aux adoptants / consommateurs de reconfigurer leurs applications pour une nouvelle API et de faire leurs adieux, faisant la paix avec l'API. Certaines API peuvent persister plus longtemps que d'autres, mais à ce stade, nous savons que leur temps n'est pas long.

L'API supprimée est un enterrement de code. Il ne peut rien faire de plus, mais bien disposé et commémoré de manière appropriée.

De nombreux développeurs d'API et de services optent pour des funérailles de code plutôt que pour effectuer les derniers rites; cependant, je pense que c'est quelque peu risqué. Si une promesse de service ou d'assistance a été faite lors de l'adoption initiale ou du renouvellement de l'API / du service, vous souhaiterez peut-être honorer cet engagement pendant une période raisonnable avant d'effectuer les funérailles.

Pour les bibliothèques hors service, je pense qu'une version majeure, quelle que soit la période, est probablement une période plus qu'acceptable et équitable de compatibilité descendante garantie. Au-delà, cela dépend de l'influence et du lobbying des utilisateurs pour prolonger sa durée de vie au-delà de cette période. Et ne soyez pas surpris s'il y a de temps à autre des objections dues à des dépendances irremplaçables de tiers coincées dans les limbes et liées à certaines versions de certaines plateformes.

Pour les services, je pense que vous voudrez peut-être regarder une période de six mois ou d'une année, simplement en raison de la variation par qui et par la façon dont un service peut être consommé, et la variance correspondante du cycle de développement d'un projet à l'autre - de nombreux projets susceptibles de consommer votre service pourraient tout de même avoir une grande conception initiale et planifier un cycle de publication de plus d'un an. La plupart des opinions des développeurs de l'extérieur suggèrent que ceux qui ont de longs horaires sont responsables du respect de vos temps de cycle, et ces projets consommant un cycle long devraient adopter un cycle de publication plus rapide, et cela peut être vrai. Mais finalement, la date de suppression est quelque chose que vous devez négocier avec les utilisateurs.

Une bonne stratégie de dépréciation, mais pas à l'épreuve des balles, pourrait être lorsque vous annulez la dépréciation, mettez en évidence le calendrier de l'intention de suppression, ainsi qu'une demande de commentaire ou d'objection dans un format d'enquête des sections API en question. Si vous n'avez pas de liste de contacts d'utilisateurs parce que votre service fonctionne avec un accès [semi] anonyme, vous pouvez envisager de consulter les journaux des utilisateurs fréquents et actifs et d'envoyer la notification à l'hôte ou à l'administrateur de domaine pour la transmettre comme ils l'entendent.


Wow, réponse très informative
TheLQ

7

La plupart des API Web que j'utilise (de sociétés comme Google, Yahoo! Et Microsoft) ont une période de "temporisation". Les développeurs sont informés dans un délai raisonnable (par exemple 3 à 6 mois) des fonctionnalités qui vont être dépréciées pour leur laisser suffisamment de temps pour effectuer une mise à niveau au préalable.

Vous pouvez ajouter les détails des périodes de temporisation dans vos conditions d'utilisation ou dans d'autres documents pour que les gens sachent comment cela fonctionne. Cela signifie que lorsque quelqu'un décide d'utiliser votre API, il saura avec quels horaires il doit travailler. Par exemple, vous pourriez informer les gens qu'ils devront mettre à niveau leur système une fois par an et avoir un préavis de 4 mois pour le faire.

C'est aussi une bonne idée d'utiliser la numérotation des versions afin que vous puissiez dire que, par exemple, "la version 3 va bientôt être dépréciée, alors assurez-vous que votre code fonctionne avec la version 4" etc. De cette façon, les gens savent que si leur application fonctionne avec la version 4 alors ils sont prêts pour le coucher du soleil.


1

Informations supplémentaires sous l'angle du processus:

  • Communiquez avec toutes les parties prenantes : fournissez aux autres équipes et aux consommateurs d'API une communication claire et concise sur la raison de la dépréciation de l'API, la stratégie, les détails du plan et du calendrier, la signification du versionnement et les alternatives, définissez le HTTP en conséquence.

  • Plan et calendrier : Sur le plan, vous devriez avoir les étapes clés et la date cible pour la fin de la dépréciation. Vous devriez demander aux consommateurs de faire de même et fournir des dates auxquelles ils déconseilleront l'appel. Organisez une réunion régulière pour surveiller le processus et soutenir les consommateurs.

  • Contrôle de version et fournir des alternatives : le contrôle de version peut aider à montrer les changements de rupture sur les versions principales et à rendre la stratégie de dépréciation de l'API.

  • Définissez l'en-tête de réponse HTTP Sunset : les en-têtes HTTP jouent le rôle technique de l'avertissement, les consommateurs d'API doivent surveiller ce type de code pour comprendre quand une API est obsolète.

  • Surveiller avant et après : surveillez vos consommateurs et avertissez tout consommateur que l'utilisation de l'API après une certaine période est une information utile pour vous assurer de ne manquer aucun abandonware.


0

En plus des réponses existantes, vous devez fournir un remplacement ou un plan de migration lors de la suppression de quelque chose, afin que vos utilisateurs puissent mettre à jour leur code.

Essayez d'éviter de supprimer des fonctionnalités sans fournir d'alternative - cela rendrait certains de vos utilisateurs mécontents.


Si cela est possible dans votre API Web, conservez les fonctions obsolètes actives, mais demandez-leur de renvoyer une erreur informative, plutôt que de simplement casser.
Renseignez-vous sur Monica
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.