REST - как отформатировать ссылки в контенте - PullRequest
4 голосов
/ 17 июля 2011

В REST все дело в ссылках. По сути, пользователю API нужна только одна ссылка - ссылка верхнего уровня. Обычно это http://server/api/ или что-то похожее. Все остальные ссылки обнаруживаются при просмотре иерархии. Например, GET / api / может дать вам ссылку на / api / users / и / api / images / и / api / users / может дать вам ссылку на / api / users / john / и т. Д.

Тем не менее, мне интересно, есть ли какой-то стандарт, как форматировать эти ссылки. В конце концов, если речь идет о ссылках, сканер должен иметь возможность обнаруживать все ресурсы в системе, начиная с верхней части?

Я провел некоторые исследования в отношении. тип носителя XML, и не смог найти ни одного отмеченного стандарта. Давайте выберем ресурс / users / . Некоторые пишут

<users>
    <user name='john' uri='/users/john'/>
    <user name='steve' uri='/users/steve'/>
</users>

Другие пишут

<users>
    <user name='john' link='/users/john'/>
    <user name='steve' link='/users/steve'/>
</users>

Другие используют xlink, которая дает, например:

<users>
    <user name='john' xlink:href='/users/john'/>
    <user name='steve' xlink:href='/users/steve'/>
</users>

и т. Д.

Я мог бы быть здесь в неведении, но разве не должно быть какого-то стандарта, который определяет, как форматировать ваши ссылки на другие ресурсы, так что нет никаких знаний о том, как форматировать данные, требуемые? Другими словами, сканер X для API приложения A1, вероятно, не будет работать для API приложения A2, поскольку A1 форматирует свои ссылки на свои ресурсы иначе, чем A2.

Выше я говорил только о типе носителя XML. Когда вы принимаете JSON, в этой области распространяется еще больше версий.

Почему в REST не указано, как должны быть отформатированы ссылки на связанные ресурсы ресурса?

Ответы [ 2 ]

5 голосов
/ 18 июля 2011

Проблема с возвратом application / xml заключается в том, что для определения ссылки не определена стандартная семантика.Вот почему это не очень хороший тип мультимедиа.Xhtml - лучший вариант, в котором указаны некоторые правила для ссылок. HAL - еще один хороший вариант, который еще проще.

При указании ссылки в документе нужно учитывать много вещей, гораздо больше, чем просто href.Майк Амундсен проделал большую работу с hfactor , рассказав о различных аспектах встраивания ссылок в документы.

Самая важная часть ссылки, как упоминал Джон Хоус, упоминает об этом.Rel может быть либо глобально определенным, например, определенным здесь как IANA.Или они могут быть вашими собственными, если вы соблюдаете правила для Расширенных связей, как определено в RFC 5988 .Документация по rel рассказывает разработчику клиента все, что ему нужно для активации этой ссылки.

2 голосов
/ 18 июля 2011

Почему REST не указал, как ссылки на связанные ресурсы ресурс должен быть отформатирован?

Даррел имеет хороший пример выше, но чтобы ответить на ваш вопрос напрямую: REST - это стиль, который реализован в архитектуре, которая использует протоколы, использующие преимущества типов медиа. Предполагается, что это тип медиа, который определяет, как ссылки должны быть отформатированы. Таким образом, сам REST не определяет форматирование. Он определяет, как ограничить организацию взаимодействия элементов данных, стандартные типы которых определяют форматирование ссылок.

...