Коли я повинен використовувати AtomPub?


13

Я проводив деякі дослідження дизайну веб-сервісів RESTful, і я дійшов до того, що, на мою думку, є ключовим моментом для прийняття рішення, тому я подумав, що запропоную його громаді, щоб отримати поради.

Відповідно до принципів архітектури RESTful, я хочу представити API, який можна знайти, тому я буду максимально повно підтримувати різні дієслова HTTP. Моя складність пов'язана з вибором представництва цих ресурсів. Розумієте, мені було б легко придумати власний API, який висвітлює, як представляти результати пошуку та як надаються посилання на інші ресурси, але це буде унікальним для моєї програми.

Я читав про протокол публікації Atom ( RFC 5023 ) та про те, як OData сприяє його використанню, але, здається, додає додатковий рівень абстракції над тим, що є (на даний момент) досить простим API.

Отже, моє запитання полягає в тому, коли розробник повинен вибрати AtomPub як свій вибір представництва - якщо він взагалі? А якщо ні, то який нині рекомендований підхід?


1
Про це є цікава дискусія тут: comments.gmane.org/gmane.comp.web.services.rest/16023
Gary Rowe

Відповіді:


11

Провівши досить багато досліджень у цьому, ось мої висновки:

Здається, є три основні формати та підходи: AtomPub, OData та HAL. Я підсумував дослідження для кожного нижче.

AtomPub

  • Pro: Добре встановлений стандарт
  • Pro: працює з XML та JSON
  • Pro: має чудову підтримку Java через Apache Abdera
  • Кон: Абдера вводить багато залежностей
  • Con: Дуже складна робота з серверною стороною
  • Con: Складно створити повний клієнт JavaScript

OData

  • Pro: Створюється на AtomPub
  • Pro: працює з XML та JSON
  • Pro: Має хорошу підтримку Java через проект odata4j
  • Pro: забезпечує хорошу структуру запитів URI

  • Con: Вводить повний фреймворк (по суті замінює Dropwizard)

  • Con: Дуже складна робота, зокрема модель даних сутності (EDM)
  • Con: Складно знайти хорошу клієнтську бібліотеку JavaScript, не покладаючись на інструменти для EDM, призначені лише для Windows

HAL

  • Про: запроваджує легкий і розширюваний підхід
  • Pro: працює з XML та JSON
  • Pro: Trivial для створення моделі JAXB для її впровадження (без залежностей)
  • Pro: Забезпечує хороші рамки зв'язку
  • Pro: Trivial для створення клієнта JavaScript за допомогою jQuery XML-розбору
  • Con: Не ратифіковано (хоча IETF вже надійшов)

Тож коли я повинен використовувати AtomPub?

З вищезазначеного слід вибрати AtomPub, якщо ви задоволені додатковою складністю та хочете використовувати стандартні бібліотеки для своїх клієнтів. Можливо, це станеться, якщо ви використовуєте велике сховище документів.

Я розмістив більш детальну інформацію (яка є поза рамками цього питання) в останній статті блогу, яка може допомогти іншим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.