В интернете всегда можно легко найти информацию о веб-службах, которые базируются на SOAP и XML-RPC, а вот REST, почему-то, обделен вниманием. В рамках этой статьи будет рассмотрен базис этой архитектуры и ее практическое применение.
REST: что это?
REST является стилем архитектуры ПО для систем распределения (пример - всем известная www). Обычно с его помощью строят веб-службы. Рой Филдинг, который имеет прямое отношение к созданию протокола HTTP, ввел термин REST в начале века. После этого любую систему, которая поддерживала его, стали называть RESTFul. Доступный интерфейс контроля без ненужных слоев - вот что из себя представляет эта архитектура. Глобальный ID, а именно URL, определяет каждую очередную информационную единицу. Сам же URL характеризуется форматом, который находится в жестких рамках.
Что такое API
REST на практике
Если нет пустых прослоек, данные будут переданы в виде, аналогичном им самим. "Заворачивание" информации в XML не происходит, как в случае с SOAP и XML-RPC, также не используется и AMF, как это бывает с Flash. По сути, происходит чистая передача.
URL, на деле, является базовым ключом для единицы данных. Пример: вторая книга из стопки, лежащей на столе, будет интерпретирована как /book/2, а 145 страница в этой книге - /book/2/page/145. Это достаточно жесткий формат. Самое интересное, что он может присутствовать в любом внешнем источнике, будь то HTML или doc-файл.
Контроль информации сервиса
Протокол передачи данных - основа контроля и управления. Самый часто используемый протокол - это, само собой, HTTP, и для него команды действий выглядят так:
- GET (получение);
- PUT (добавление);
- POST (изменение);
- DELETE (удаление).
Поэтому Create/Read/Update/Delete-действия будут выполнены и с 4 указанными алгоритмами, и посредством GET и POST. Это позволит в некоторых случаях обойти негативные эффекты с использованием непринятых PUT и DELETE.
REST в построении веб-сервисов
Веб-сервис - приложение, которое работает в www с доступом, предоставленным через HTTP-протокол. Информационный обмен в рамках веб-сервиса осуществляется посредством формата XML. А это значит, что все данные из тела запросов будут всегда в аналогичном формате.
Для любой информационной единицы можно задать 5 вариантов действия:
- GET /info/ (Index) используется для получения списка объектов. Конечно, полученный список будет ограничен заданным идентификатором.
- GET /info/{id} (View) позволяет получить всю информацию об объекте.
- PUT /info/ или POST /info/ (Create) осуществляет создание нового объекта.
- POST /info/{id} или PUT /info/{id} (Edit) производит замену данных, соответствующих введенному идентификатору.
- DELETE /info/{id} (Delete) удаляет данные, выделенные идентификатором.
Итоги
Очевидно, что REST, как архитектура, обладает интуитивными алгоритмами и отличается простотой в использовании. Если запрос получен, то определить, что именно он делает, можно немедленно, без форматных разбирательств. При передаче не используются дополнительные слои, что обеспечивает REST особую ресурсоемкость.
Для чего можно использовать?
Основное достоинство сервисов REST - дружественность. Рабочая связка с сайтом, flash, программой? Не важно, ведь алгоритмы парсинга XML и обработка запросов HTTP есть буквально везде. REST значительно упрощает все связанные с этим задачи. Конечно, на практике описанных здесь алгоритмов недостаточно, так как отсутствует защита данных. Но ввести в систему авторизацию и аутентификацию всегда можно при помощи HTTP Authentication.