Ich habe einige Untersuchungen zum Design von RESTful-Webdiensten durchgeführt und bin zu einem meiner Meinung nach entscheidenden Punkt gelangt. Ich dachte, ich würde es der Community anbieten, um Ratschläge zu erhalten.
In Übereinstimmung mit den Prinzipien einer RESTful-Architektur möchte ich eine erkennbare API präsentieren, damit ich die verschiedenen HTTP-Verben so vollständig wie möglich unterstützen kann. Meine Schwierigkeit liegt in der Wahl der Repräsentation dieser Ressourcen. Sie sehen, es wäre einfach für mich, eine eigene API zu entwickeln, die beschreibt, wie Suchergebnisse dargestellt und wie Links zu anderen Ressourcen bereitgestellt werden. Dies ist jedoch für meine Anwendung einzigartig.
Ich habe über das Atom Publishing Protocol ( RFC 5023 ) gelesen und wie OData seine Verwendung fördert, aber es scheint eine zusätzliche Abstraktionsebene gegenüber einer (derzeit) recht einfachen API hinzuzufügen.
Meine Frage ist also, wann ein Entwickler AtomPub als Repräsentationswahl wählen sollte - wenn überhaupt? Und wenn nicht, wie lautet der derzeit empfohlene Ansatz?
quelle
Antworten:
Nachdem ich dies gründlich untersucht habe, sind hier meine Ergebnisse:
Es scheint 3 primäre Formate und Ansätze zu geben: AtomPub, OData und HAL. Ich habe die Forschung für jedes unten zusammengefasst.
AtomPub
OData
Pro: Bietet eine gute URI-Abfragestruktur
Con: Führt ein komplettes Framework ein (ersetzt im Wesentlichen Dropwizard)
Hal
Wann sollte ich AtomPub verwenden?
Wählen Sie AtomPub, wenn Sie mit der zusätzlichen Komplexität zufrieden sind und Standardbibliotheken für Ihre Kunden verwenden möchten. Dies ist wahrscheinlich der Fall, wenn Sie ein großes Dokumentrepository ausführen.
Ich habe in einem kürzlich erschienenen Blog-Artikel (der für diese Frage nicht relevant ist) weitere Details aufgeführt, die anderen möglicherweise helfen könnten.
quelle