Это продолжение вопроса, требующего объяснения REST.
Как вы можете видеть из комментариев к моему ответу, у нас был небольшой аргумент с Darrel Miller о лучшем медиа-ресурсе ресурсов. У нас было еще одно обсуждение по электронной почте, в результате которого возник этот вопрос.
Основное различие между Darrel и моим пониманием REST заключается в том, является ли семантика данных частью REST API.
Даррел полагает (моя интерпретация его слов:-)), что семантика данных является неотъемлемой частью REST API, и поэтому выбранное медиапредставление должно отражать это. Таким образом, правильный REST API должен выбрать либо:
- известный носитель, такой как ATOM, для представления данных, так что многие клиенты могут понять семантику ресурса изначально;
- тип приложения, такой как application/vdn.mycomany.mymedia, и ожидайте, что клиент поймет этот тип носителя, чтобы иметь возможность потреблять данные ресурсов. Приложение /xml не является хорошим представлением ресурсов, так как оно не представляет семантику в типе медиа, но требует от клиента больше узнать о семантике.
Я, с другой стороны, считаю, что REST API представляет собой отдельный слой из фактического представления данных. Тип носителя, открытый API, представляет собой контейнер для передачи данных ресурсов. Фактическая семантика данных обрабатывается отдельно. Таким образом, клиент, который не понимает данные, все еще может использовать REST API. Приложение /xml - действительно хорошее представление данных, поскольку оно позволяет жестко связывать клиентов, которые понимают схему, но все же позволяет клиенту, который не понимает схему, выполнять некоторую базовую обработку ресурсов.
Таким образом, вопрос: является семантической частью данных REST API? Должны ли мы выбирать только типы носителей для представления ресурсов, которые также представляют собой семантику данных?
Я был бы apreaciate, если бы люди публиковали в своих ответах некоторые цитаты, предпочтительно от самого Роя.: -)