Является ли рекомендация HATEOAS (гипермедиа как двигатель состояния приложения) подразумевать, что строки запроса не являются RESTful?
Изменить: было предложено ниже, что строки запросов могут не иметь большого отношения к состоянию, и поэтому вопрос вызывает недоумение. Я бы предположил, что для URI не имеет смысла иметь строку запроса, если клиент не заполняет аргументы. Если клиент заполняет аргументы, он фальсифицирует предоставленный сервером URI, и мне интересно, нарушает ли он принцип RESTful.
Изменить 2: Я понимаю, что строка запроса кажется безобидной, если клиент рассматривает ее как непрозрачную (и строка запроса может быть наследственной и, следовательно, удобной). Однако в одном из ответов ниже Рой Филдинг цитируется, что URI следует считать прозрачным. Если это прозрачно, я считаю, что фальсификация поощряется и, по-видимому, разбавляет принцип HATEOAS. Разве такое разбавление по-прежнему согласуется с HATEOAS? Это ставит вопрос о том, призывает ли REST к жесткому соединению, которое похоже на URI-здание.
Обновление. В этом учебнике REST http://rest.elkstein.org/ предлагается, что URI-здание плохо проектируется и не является RESTful, Он также повторяет то, что было сказано @zoul в принятом ответе.
Например, запрос "список продуктов" может вернуть идентификатор для каждого продукта, а в спецификации указано, что вы должны использовать http://www.acme.com/product/PRODUCT_ID для получить дополнительную информацию. Это плохой дизайн. Скорее, ответ должен включать фактический URL-адрес с каждым элементом: http://www.acme.com/product/001263 и т.д. Да, это означает, что результат больше. Но это также означает, что вы можете легко перенаправить клиентов на новые URL-адреса по мере необходимости
Если человек смотрит на этот список и не хочет, что он/она может видеть, могут быть "предыдущие 10 элементов" и кнопка "следующие 10 пунктов", однако, если нет человека, а скорее клиентская программа, этот аспект REST кажется немного странным из-за всего "http://www, что клиентская программа может не использовать.