Введение в REST API
В данной статье я расскажу Вам о том, что такое REST API. Также мы затронем тему HTTP протокола.А также рассмотрим пример архитектурного дизайна REST API.
Немного теории
О том, что такое API, я подробно рассказывал здесь. Напомню, что API – это некий набор правил, с помощью которых приложение или какой-либо один его компонент могут взаимодействовать, общаться, если хотите, с другим приложением или компонентом. Прикладной интерфейс программирования (API) может возвращать данные в разных форматах, например в JSON, XML или в бинарном формате, но в REST API мы будем использовать JSON-формат, как наиболее удобный.
Давайте посмотрим на пример. Возможно, Вы уже знакомы с тем, что такое система контроля версий Git. Ее web-версия – это Github. Так вот, у Github есть собственное API, с помощью которого можно получить какую-либо полезную информацию, например о пользователях и организациях, их проектах, и т.д. Давайте взглянем на пример:
curl https://api.github.com/orgs/Yandex
В этом примере мы используем консольную утилиту curl для того, чтобы получить данные через API. Ее можно загрузить с официального сайт проекта. Она позволяет делать все то же самое что и расширение curl в PHP, только для этого не нужно писать код, так как вся функциональность доступна посредством интерфейса командной строки. Вообще, незаменимая вещь для тестирования различных прикладных интерфейсов. Есть еще альтернатива в виде расширения для Chrome – Postman.
Данная команда вернет нам большой JSON-объект, содержащий различные данные о компании.
Теперь остановимся подробнее на том, что же такое REST. Это сокращение может быть расшифровано в следующем виде: представление данных для клиента в формате удобном для него. Очень важно запомнить, что REST – это не протокол, а подход, архитектурный стиль к написанию прикладных интерфейсов.
Если говорить еще проще то, REST – это архитектурный стиль, а RESTful API – это его практическое воплощение, и чем больше приложение отвечает критериям стиля REST, тем более оно RESTful.
RESTful API сводится к четырем базовым операциям:
- получение данных в удобном для клиента формате
- создание новых данных
- обновление данных
- удаление данных
REST функционирует поверх протокола HTTP, поэтому стоит упомянуть о его основных особенностях. Для каждой операции указанной выше используется свой собственный HTTP метод:
- GET – получение
- POST – создание
- PUT – обновление, модификация
- DELETE – удаление
Все эти методы в совокупности называют CRUD (create, read, update, delete) – (создать, прочитать, обновить, удалить) операциями.
Фактически в REST существует единственный, непротиворечивый общий интерфейс для запросов, например, к базам данных, что является его важнейшим преимуществом. На следующей картинке показано соответствие HTTP методов SQL операциям и концепции CRUD.
Т.е. HTTP метод POST соответствует SQL операции INSERT, метод GET – операции SELECT и т.д.
Для каждого HTTP запроса есть свой статус. И они нужны, чтобы грамотно с точки зрения REST API оформить ответ и отдать клиенту. Статусов много, поэтому их всех не перечислить, однако важно знать их группировку:
- 100 – 199 – это статусы несущие информационный характер
- 200 - 299 – статусы успешной операции
- 300 – 399 – статусы перенаправления (редиректа)
- 400 – 499 – статусы ошибок на стороне клиента
- 500 – 599 – статусы ошибок на стороне сервера
Вообще, как делается API. Создается некая точка входа для запросов, api.php, например. Этому API, могут передаваться, например, такие запросы:
- http://site.com/api.php?action=create.user&id=1&key=46syhy77sash
- http://site.com/api.php?action=delete.user&id=1&key=46syhy77sash
- http://site.com/api.php?action=get.user&id=1&key=46syhy77sash
где параметр
- action – это действие, которое необходимо выполнить
- id – идентификатор пользователя
- кey – ключ доступа (фактически, временный пароль)
Однако этот подход, несмотря не некую простоту, не лишен недостатков, хотя бы потому, что для всех видов запросов используется один метод GET, тогда как в спецификации HTTP их определено с десяток, каждый для своей конкретной области.
Сегодня REST API используется повсюду, начиная от сайтов, заканчивая мобильными приложениями, поэтому важно знать как работать с ним, так как рано или поздно может возникнуть необходимость в создании клиента (мобильного приложения,например) для своего сайта или того же блога.
Таким образом, REST API призван создать четко структурированный подход в написании прикладных интерфейсов. Так, как с каждым днем становится все больше и больше данных, к которым необходимо открыть доступ.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.