2012-05-15 5 views

ответ

15

Нет никакой разницы. REST описывает способ взаимодействия с HTTP-сервером, а не то, что сервер должен вернуть в ответ. Большинство веб-приложений взаимодействуют с серверной стороной с помощью запросов POST или GET с любой дополнительной информацией, необходимой для выполнения запроса в форме отправки для POST или строки запроса для GET. Поэтому, если вы хотите что-то удалить с сервера, они обычно делают POST с формой, содержащей данные, указывающие ресурс вместе с инструкцией по его удалению.

Однако HTTP реализует методы (также известные как глаголы), отличные от GET или POST. Он также реализует, в частности, HEAD (возвращает те же заголовки, которые вы бы сделали для GET, но без тела ответа), PUT (возьмите тело запроса и сохраните его содержимое по любому URL-адресу, на который был сделан запрос PUT), и УДАЛИТЬ (удалить любой ресурс по указанному URL). Интерфейс REST просто использует эти дополнительные глаголы для определения значения запроса на сервере.

Браузеры обычно поддерживают только GET и POST для «обычных» (не XHR) запросов, но такие инструменты, как Curl, могут выдавать полный набор HTTP-глаголов. Вы также можете использовать дополнительные глаголы с XHR-методами, такими как AJAX.

Вам все равно придется предоставлять традиционный API-интерфейс без REST для использования браузерами, если только вы не поддерживаете поддержку JavaScript и XHR для использования вашего приложения.

+0

Привет, Я хочу создать API, который будет использоваться мобильными приложениями, а также веб-сайтами. Каким будет лучший способ сделать API (REST или Non REST)? – Shaolin

7

REST в основном просто ссылается на использование протокола HTTP так, как он был предназначен. Используйте HTTP-метод GET по URL-адресу для получения информации, возможно, в разных форматах на основе заголовков HTTP Accept. Используйте HTTP-метод POST для создания новых элементов на сервере, PUT, чтобы редактировать существующие элементы, DELETE, чтобы удалить их. Сделайте API-идемпотент, т. Е. Повторение одного и того же запроса с той же информацией должно дать тот же результат. Структурируйте свои URL-адреса в иерархическом порядке и т. Д.

REST просто является руководящим принципом использования URL-адресов и протокола HTTP для структурирования API. В нем ничего не говорится о форматах возврата, что также может быть JSON.

Это противоречит, например, API, отправляющим двоичные или XML-сообщения в назначенный порт, не используя различия в методах HTTP или URL-адресах вообще.

Смежные вопросы