Un site Web doit-il utiliser sa propre API publique?


31

Je commence à écrire un webservice, et j'ai construit avec nodeJS et une approche RESTfulish.

À partir de ce que je rassemble:

  • L'avantage est que vous n'avez pas à dupliquer de code.
  • Les inconvénients sont que vous:
    • mettra à jour l'API publique fréquemment, mais devrait être résolu avec le contrôle de version
    • ne peut pas vraiment rendre la mise en cache et les optimisations spécifiques au service

Qu'est-ce qui est considéré comme la meilleure pratique? Les sites tels que Stack Exchange, Github, Twitter, etc. utilisent-ils leurs propres API pour leurs clients?

api 

12
Manger votre propre nourriture pour chien vous conduira également à améliorer votre API publique
Ben Brocka

Voilà comment Amazon le fait.
OliverS

2
Pour ajouter au point d'OlverS, voir Google Platforms Rant
Brian

Réponses:


37

Vous devez absolument utiliser votre propre API. Ce concept est largement connu sous le nom de dogfooding et il présente de nombreux avantages au-delà d'éviter la duplication de code.

  • Comportement cohérent entre votre site / produit et ce que les consommateurs d'API écriront (c'est-à-dire leurs attentes envers votre API)
  • Une autre forme de test.
  • Vous pouvez trouver et trouverez des bogues dans l'API avant vos clients, ce qui rend leurs résolutions moins coûteuses.

Bien que je m'oppose à l'un de vos points: vous ne devriez pas mettre à jour l'API fréquemment. Passez du temps à concevoir et à tester une API qui restera en place pendant un certain temps. Heureusement, le dogfooding de cette manière renforcera cela. Là où vous veniez de casser le code client auparavant, vous allez maintenant casser votre propre code. Quand vous le devez , oui, le versioning est une solution, mais elle doit être évitée.


0

pour une raison quelconque, cela ne me permettra pas de me connecter comme affiche de la question, mais c'était moi. Je ne peux pas accepter votre réponse, j'aimerais bien, cela a beaucoup de sens.

Cependant, comment pouvez-vous ne pas vouloir mettre à jour votre API? Qu'en est-il de l'ajout de nouvelles fonctionnalités, de la suppression de celles impopulaires, de la refactorisation, etc.?


Hey. Cela devrait être un commentaire sur sa réponse - mais je ne pense pas que vous ayez assez de représentants pour commenter. Quoi qu'il en soit, le fait est que vous ne devez pas mettre à jour l'API fréquemment . Et même alors, l'ajout de nouvelles fonctionnalités ne pose aucun problème - il ne peut pas casser le code existant. Pourquoi supprimer les impopulaires? Rendez-les obsolètes et supprimez-les dans le futur après que les gens auront eu longtemps pour répondre à la dépréciation.
Max

2
L'ajout de méthodes à une API est très bien, changer une API existante est mauvais car cela cassera tout code qui dépend de l'API.
Bryan Oakley

@ stanm87: Max et Bryan l'ont bien dit. Vous devez éviter de modifier le contrat de votre API (c'est-à-dire l'interface et le comportement attendu, fonctionnel). Les gens en dépendront s'ils utiliseront votre API et si vous la modifiez, cela cassera leur code.
Steven Evers

merci beaucoup pour la clarification. @Max Je ne peux en effet pas commenter sa réponse
stanm87
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.