Другая важная причина, по которой этот API будет считаться не подходящим, заключается в том, что он не использует «гипертекст». Гипертекст просто использует ссылки (и отношения ссылок) для перемещения клиентов в ваших приложениях, вместо того, чтобы требовать от них программно «конструировать» URI.
Это не RESTful:
GET / коллекция
200 ОК
<collection>
<item>
<id>1</id>
</item>
</collection>
Это RESTful:
GET / коллекция
200 ОК
<collection>
<item href="/collection/1" />
</collection>
Преимущество последнего подхода RESTful заключается в том, что ваш сервер может перемещать ресурс элемента в любое место, например, например. переместите его в / item / 1 - измените значение href и знайте, что все клиенты будут управлять изменением. Первый подход не способен на это, потому что сервер не может гарантировать, что все клиенты подтвердят изменение; это часть того, что называется связыванием клиент-сервер, и в больших распределенных системах, где в вашем API много клиентов, вы хотите свести это к минимуму - это основная цель REST.
Рой Филдинг называет эту часть REST «ограничением гипертекста», и он написал об этом следующее сообщение в блоге:
http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven