Я проводил некоторые исследования в области дизайна веб-сервисов RESTful и достиг того, что, по моему мнению, является ключевым моментом для принятия решения, поэтому я решил предложить его сообществу, чтобы получить совет.
В соответствии с принципами архитектуры RESTful, я хочу представить открываемый API, поэтому я буду максимально поддерживать различные HTTP-глаголы. Моя трудность связана с выбором представления этих ресурсов. Видите ли, мне было бы легко придумать свой собственный API, который описывает, как должны отображаться результаты поиска и как предоставляются ссылки на другие ресурсы, но это будет уникально для моего приложения.
Я читал о протоколе публикации Atom ( RFC 5023 ) и о том, как OData способствует его использованию, но, похоже, он добавляет дополнительный уровень абстракции к тому, что (в настоящее время) является довольно простым API.
Итак, мой вопрос, когда разработчик должен выбрать AtomPub в качестве своего выбора представления - если вообще? И если нет, то каков текущий рекомендуемый подход?
источник
Ответы:
Проведя достаточное количество исследований в этой области, вот мои выводы:
Кажется, есть 3 основных формата и подхода: AtomPub, OData и HAL. Я подвел итог исследования для каждого ниже.
AtomPub
OData
Pro: Обеспечивает хорошую структуру запроса URI
Con: вводит полную структуру (по сути, заменяет Dropwizard)
HAL
Итак, когда я должен использовать AtomPub?
Из вышеперечисленного следует выбрать AtomPub, если вы довольны дополнительной сложностью и хотите использовать стандартные библиотеки для ваших клиентов. Это, вероятно, будет иметь место, если вы работаете с большим хранилищем документов.
Я поместил больше деталей (что выходит за рамки этого вопроса) в недавнюю статью в блоге, которая может помочь другим.
источник