Имеет ли смысл REST как интерфейс данных? - PullRequest
1 голос
/ 27 октября 2011

Мы разрабатываем управляемое данными веб-приложение для мобильных устройств, используя интерфейс jQuery Mobile. Имеет ли смысл использовать интерфейс RESTful для извлечения данных? Я вижу, как полезно иметь веб-сайт с путями RESTful, потому что пользователь может легко манипулировать путем и перекрестной навигацией, но приносит ли REST какую-либо пользу, если все вызовы AJAX скрыты от пользователя кроме упрощения понимания API другими разработчиками).

Причина, по которой я спрашиваю, заключается в том, что я не уверен, что REST правильно использует HTTP. Например, в следующих примерах: 1. / продукт / 12345 / 2. / product? Id = 12345 Вариант 1 более RESTful, но 2 более «совместим» с HTTP, потому что именно так передаются стандартные браузеры. В jQuery вы можете даже сериализовать элементы формы в запрос AJAX, и результатом будет строка запроса, а не путь. Чтобы получить URL-адреса REST, вам всегда нужно манипулировать стандартными формами URL-адресов, что является дополнительным кодом без реальной выгоды. REST полностью игнорирует строки запроса или они только для запросов, т. Е. Поиска?

Ответы [ 2 ]

3 голосов
/ 27 октября 2011

ИМХО, что касается REST, то здесь нет абсолютно никакой разницы.В RFC 2396 была строка

The query component is a string of information to be interpreted by the resource.

, которая позже была изменена в RFC 3986 на:

 The path component contains data, usually organized in hierarchical form, that, 
 along with data in the non-hierarchical query component, serves to identify a
 resource (Section 3.3)

Итаксейчас эквивалентны, но, как вы сказали, "кроме облегчения понимания API другими разработчиками" Вы, конечно, не хотите принимать это просто, это должно быть самой важной вещью в любой строке кода, которую вы когда-либо писали

1 голос
/ 27 октября 2011

REST определяет местоположение ресурса, а не свойства этого ресурса. Поэтому, когда вы отправляете изменения в объект в REST API, вы можете либо опубликовать их, либо использовать строку запроса. Для клиента не так много практической пользы, но он, безусловно, облегчает тестирование и управление бэкэндом.

...