Подразумевает ли HATEOAS, что строки запроса не являются RESTful?

Подразумевает ли рекомендация 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: Я знаю, что вы можете использовать свойство startposition, но я не могу понять, как использовать его, кроме как при первом запуске приложения. Итак, как мне центрировать форму на экране?

122
задан Peter Mortensen 22 February 2018 в 17:07
поделиться