Lorsque vous utilisez une API Restful d'autres applications Web, utilisez-vous généralement une bibliothèque wrapper ou utilisez-vous directement l'API Restful avec un client HTTP?Comment utilisez-vous les API Restful?
Répondre
C'est une question difficile à répondre, principalement parce que dans l'état actuel de l'industrie, la bonne réponse est très peu pratique.
La réponse correcte, à mon avis, est que vous ne devriez pas utiliser une API wrapper. L'interface uniforme est HTTP et cela devrait être le modèle de programmation sur lequel le client travaille. Cela dit, il n'y a rien de mal à avoir des classes auxiliaires qui analysent les types de média pour générer des versions fortement typées. Quelque chose comme ça,
var response = HttpClient.Get(linkTofoo);
if (response.ContentType =='application/foo') {
var strongFoo = FooHelper.Parse(fooResponse);
HandleFoo(strongFoo);
}
Malheureusement, une grande majorité des APIs qui prétendent être RESTful, ne sont pas. Ils ne respectent pas les contraintes d'auto-description et d'hypermédia et rendent donc très difficile l'interaction avec eux de manière RESTful. Ils nécessitent que vous effectuiez la construction d'URI côté client et ayez une connaissance préalable des types qui seront renvoyés par les terminaux. La triste réalité est qu'avec de nombreuses API, vous n'avez pas d'autre choix que d'utiliser une bibliothèque de proxy client fournie. Cela ne devrait pas être le cas.
Si vous recherchez une bibliothèque client, assurez-vous qu'elle est sans état. La bibliothèque cliente ne doit pas commencer à gérer les durées de vie des objets retournés. La mise en cache Http fait cela, donc à moins que ce soit une bibliothèque uber-smart qui peut invalider les références d'objet lorsque la représentation mise en cache expire, évitez les bibliothèques client avec état.
e.g.
var foo = remotelibrary.GetFoo(233);
var bar = foo.bar; // If this causes an HTTP request
var barcopy2 = foo.bar // and this doesn't because it already has a reference to bar
// I would be very leary of using this library
Il va presque certainement être préférable à long terme d'utiliser une bibliothèque. Cela vous permet d'abstraire le repos de la conception et d'ignorer l'ensemble de l'activité HTTP.
S'il n'y a pas de bibliothèque existante pour l'API que vous utilisez, vous devriez envisager d'écrire la vôtre.
- 1. Comment sécuriser les API Apache CXF RESTful?
- 2. API RESTful Zend Framework
- 3. API RESTful vs Web Service API
- 4. API RESTful: comment modéliser la représentation JSON?
- 5. Facebook API RESTful require_login() callback
- 6. Dois-je séparer les contrôleurs API RESTful des contrôleurs "standards"?
- 7. CouchDB en tant que couche API Restful?
- 8. API RESTful: Comment modéliser 'demander un nouveau mot de passe'?
- 9. API RESTful: comment gérer les champs de texte traduits dans les représentations?
- 10. Comment gérer les objets/ressources fusionnés dans une application Web et dans une API RESTful?
- 11. Par où commencer avec l'utilisation des API RESTful?
- 12. Consommer une API JSON RESTful en utilisant WCF
- 13. Comment appeler les services RESTFUL de GWT?
- 14. Quelles sont les techniques viables pour combiner la protection CSRF avec les API RESTful?
- 15. Consommation d'API RESTful en Java
- 16. Quelles sont les meilleures pratiques pour concevoir une API publique RESTful sur Rails?
- 17. Comment puis-je découvrir les services Web RESTful?
- 18. Rails RESTful API + support pour les clients qui autorisent seulement GET/POST - Est-ce possible?
- 19. Restful Service dans ASP.NET
- 20. Suggestions d'API RESTful
- 21. Comment concevoir une API REStful pour un moteur d'analyse de média
- 22. Comment choisir le cadre RESTful parfait?
- 23. RESTful préoccupations
- 24. Pagination dans un service RESTful
- 25. Rails Suppression RESTful dans les ressources imbriquées
- 26. Comment gérer les clés api
- 27. Comment combiner les appels RESTful et le wink Apache?
- 28. Dans Rails, comment utilisez-vous les contrôleurs RESTful avec Haml?
- 29. URI pour les services Web RESTful
- 30. Comment les API sont-elles différentes des autres API?
Je dirais qu'il est correct d'écrire/utiliser des bibliothèques écrites pour des applications hypertextes spécifiques, par exemple. AtomPub – Mike
@Mike Oui, si la bibliothèque est écrite pour un protocole spécifique qui est en couches sur HTTP, il est probable qu'elle utilise HTTP correctement sous les couvertures, donc vous devriez être en sécurité. –