J'ai mené des recherches sur la conception de services Web RESTful et j'ai atteint ce que je pense être un point de décision clé, alors j'ai pensé que je l'offrirais à la communauté pour obtenir des conseils.
Conformément aux principes d'une architecture RESTful, je souhaite présenter une API détectable, donc je prendrai en charge les différents verbes HTTP aussi complètement que possible. Ma difficulté vient du choix de la représentation de ces ressources. Vous voyez, il serait facile pour moi de trouver ma propre API qui couvre la façon dont les résultats de la recherche doivent être présentés et comment les liens vers d'autres ressources sont fournis, mais cela serait unique à mon application.
J'ai lu sur le protocole de publication Atom ( RFC 5023 ) et comment OData promeut son utilisation, mais il semble ajouter un niveau d'abstraction supplémentaire par rapport à ce qui est (actuellement) une API assez simple.
Donc ma question est, quand un développeur devrait-il choisir AtomPub comme choix de représentation - le cas échéant? Sinon, quelle est l'approche actuellement recommandée?
la source
Réponses:
Après avoir fait pas mal de recherches à ce sujet, voici mes conclusions:
Il semble y avoir 3 formats et approches principaux: AtomPub, OData et HAL. J'ai résumé la recherche pour chacun ci-dessous.
AtomPub
OData
Pro: fournit une bonne structure de requête URI
Con: introduit un cadre complet (remplace essentiellement Dropwizard)
HAL
Alors, quand dois-je utiliser AtomPub?
À partir de ce qui précède, vous devez choisir AtomPub si vous êtes satisfait de la complexité supplémentaire et souhaitez utiliser des bibliothèques standard pour vos clients. Ce serait probablement le cas si vous exécutez un grand référentiel de documents.
J'ai mis plus de détails (ce qui est hors de portée pour cette question) dans un article de blog récent qui pourrait être utile aux autres.
la source