Что это? REST API (Representational State Transfer) – это архитектурный подход, описывающий рамки взаимодействия с API (распределенного приложения в сети). Это не протокол, а скорее список рекомендаций.
Где применяется? REST API используется при работе с запросами на сайтах. Подход RESTful применяют там, где необходимо кэшировать данные, в дальнейшем масштабировать сайт или приложение.
В статье рассказывается:
- Основа REST API
- Что собой представляет REST API
- Как работает и где применяют REST API
- 7 принципов REST API
- Нюансы взаимодействия c REST API
-
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.Бесплатно от Geekbrains
Основа REST API
API (Application Programming Interface) представляет собой набор определений и протоколов. Разработчики создают API-интерфейсы для взаимодействия и обмена данными одного приложения или сайта с другими. API функционирует как своеобразный шлюз или посредник между клиентами и сервером.
Интерфейс API разрабатывается таким образом, чтобы программное обеспечение могло запросить определенный тип данных через сеть. Интерфейс совместим с любыми языками программирования, операционными системами, программами, сайтами, приложениями, flash и т.д.
Рассмотрим на примере бухгалтерского сервиса, выставляющего счета на оплату. Они хранятся на сервере, с которым приложение связывается через API.
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Скачивайте и используйте уже сегодня:
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
REST является программной архитектурой, определяющей условия работы API. REST API реализуется с помощью протокола HTTP, который используется для получения различных ресурсов в интернете.
HTTP несложен. Понять его специфику можно на примере. Возьмем адрес http://website.com/something. В нем выделим 2 части. Первая: http://website.com. Это адрес сервера. Вторая: /something. Это адрес ресурса на удаленном сервере.
REST API запрос функционирует так: сначала пользователь вводит URL-адрес, например, http://website.com/something. Далее он переходит на сервер website.com и запрашивает ресурс /something. HTTP запрос показывает, что нужно делать с ресурсом.
По адресу website.com функционирует программа, к функции которой хочет обратиться другая программа. Суть запроса сервер поймет благодаря используемому адресу.
Разберёмся на примере с бухгалтерским сервисом. Выставление счетов можно представить в API как ресурс — /invoices. Реквизиты банковского счета — /requisites. Все имена ресурсам даются согласно нормам формирования URL в интернете.
Читайте также!
Через протокол HTTP серверу передается запрос, что требуется сделать с запрашиваемым ресурсом. Доступны несколько способов обращения. В случае с бухгалтерскими счетами, используя ресурс /invoices, открывается возможность просмотра, редактирования или удаления.
Рассмотрим ключевые методы REST API, которые используются для действий с объектами на серверах посредством HTTP-протокола:
- GET — это получение информации или доступ к данным ресурса, расположенным на сервере по указанному URL. Такого рода запросы только возвращают данные с сервера, но не могут их изменить или удалить. Например, в бухгалтерском сервере GET /invoices открывает список счетов.
- POST — это добавление или замена данных. В бухгалтерском сервере POST /invoices используется для открытия нового счета.
- PUT — это обновление существующих на сервере ресурсов. Так, PUT /invoices дает возможность изменить номер счета, сумму или банковские реквизиты.
- DELETE — это удаление данных. В бухгалтерском сервере DELETE /invoices удаляет уже оплаченные счета.
Итак, на примере ресурса /invoices мы рассмотрели 4 функции, которые одна программа может применять для действий с объектами.
Использующую протокол HTTP технологию REST API принято называть передачей репрезентативного состояния.
Что собой представляет REST API
Когда пользователь заходит на сайт, происходит следующее: интернет-браузер шлет запрос на сервер и открывает запрашиваемую страницу, получив ответ от него. Бывают разные серверы, так же как и способ хранения информации на них. Для того чтобы интернет-браузер понимал запрос пользователя, нужны программные интерфейсы или API. Они бывают различными. Одним из самых популярных является REST API.
Разберемся, зачем нужен REST и какие преимущества дает его использование.
Создатель данной концепции архитектурного стиля Рой Филдинг считал, что главное назначение REST состоит в том, чтобы проектируемой системе были присущи следующие характеристики:
- Высокая производительность.
- Возможность масштабирования.
- Адаптивность и портативность.
- Отказоустойчивость.
- Простая поддержка.
Такого плана свойства являются ключевыми при проектировании систем. На деле их больше. Все перечисленные выше характеристики подходят под определение нефункциональных требований к системе, касающихся высокого качества программ.
Аббревиатура REST (Representational State Transfer) переводится как «передача состояния представления».
REST API не является строгим протоколом вроде SOAP API. Это определенный перечень рекомендаций. Поэтому REST API не имеет собственной методологии. Автор REST API также создал HTTP. Они прекрасно сочетаются. Но начинающим разработчикам нужно знать, что REST — это не значит только HTTP, а HTTP — не один REST.
Основные принципы архитектурного стиля REST API:
- реализация с помощью протокола безопасной передачи данных HTTPS, который поддерживает технологию шифрования TLS/SSL;
- применение набора инструментов и правил API Blueprint и Swagger, которые определяют спецификацию для описания REST API;
- тестирование REST API посредством использования приложения Get Postman;
- использование большого перечня HTTP-кодов;
- возможность архивирования масштабных блоков данных.
Иногда REST API называют RESTful. RESTful используется в отношении всех сервисов, соответствующих архитектуре REST. RESTful используется как прилагательное.
Как работает и где применяют REST API
Понять работу REST API можно на следующем примере: бронирование номеров в гостинице в разных категориях (экономный, стандартный и улучшенный). В REST API у каждой категории будет свой унифицированный указатель ресурса URL:
- http://hotel.ru/booking/econom
- http://hotel.ru/booking/standart
- http://hotel.ru/booking/lux
Читайте также!
Эти URL дают определение ресурсу на сервисе — сведения о наличии свободных номеров в гостинице, относящихся к определенной категории. Для взаимодействия с ресурсами используются CRUD-команды HTTP. К примеру, GET standart передает данные о свободных номерах категории стандарт. В RESTful для скорости и удобства использования подобного рода данные кэшируются, а значит, нет необходимости снова взаимодействовать с сервером при повторении поискового запроса.
Программная архитектура REST API расставляет приоритетность. В случае с бронированием номеров в отеле это использование высокопроизводительных серверов под запрос клиента на улучшенные номера. Архитектура REST API масштабируется. Когда освобождаются номера, система будет запрашивать данные у ресурсов по новым URL.
Методы REST API будут наиболее эффективны в следующих случаях:
- при ограниченной пропускной способности;
- при необходимости кэшировать запросы;
- при необходимости поддержания высокопроизводительной и надежной связи в требуемом масштабе для REST API приложения;
- при применении разработчиками подхода AJAX, который заключается в фоновом обмене данных браузера с веб-сервером.
В Twitter отправка запросов осуществляется в формате JSON. Программистам сторонних приложений доступна часть данных Twitter через REST-запросы. Приведем пример:
- GET geo/id/:place_id. Возвращает данные о том, где находятся пользователи.
- GET geo/reverse_geocode. Возвращает до 20 вероятных координат мест, которые можно отметить в твите.
7 принципов REST API
Основные принципы архитектурного стиля REST API:
Раздельная работа клиента и сервера
Клиент и сервер могут работать абсолютно независимо друг от друга. Разработчики используют достаточно простой способ организации REST API: клиентский код остается на его стороне, а код доступа — на сервере. Если клиентский код изменится, это не скажется на работе сервера, и наоборот. Благодаря этому REST API имеет такие преимущества, как переносимость и гибкость, а также возможность масштабирования.
Нет сохранения состояния
На сервере не записываются проведенные операции клиента. Каждый запрос должен быть информативным и унифицированным, то есть понятным серверу.
Кэшируемые данные
В REST API запросах определяется, нужно ли кэшировать данные в буфере. Клиенту это дает высокую производительность и увеличивает скорость загрузки страниц, а серверу дает большие возможности масштабирования.
Унифицированный интерфейс
REST API запросы к определённому ресурсу должны быть идентичными. URL-адрес ассоциируется с одними данными. Это делает архитектурный стиль сайта/приложения проще, а взаимодействие с сервером — понятнее.
Многоуровневая архитектура системы
В RESTful возможна группировка серверов на разных уровнях, каждый из которых выполняет определенный функционал и выступает посредником между клиентом и сервером.
Кодирование по требованию
Серверы предоставляют клиенту статические представления ресурсов. При использовании программной архитектуры REST API клиент, к примеру, может получить код рендеринга для виджетов. Общий код усложняется лишь при необходимости.
Старт с нуля
Клиент сталкивается только со стартовой точкой входа на сервер. Все дальнейшее взаимодействие обеспечивается сервером.
Нюансы взаимодействия c REST API
Архитектурный стиль REST API является одним из лучших решений для взаимодействия между любыми веб-приложениями и сайтами. Это связано с тем, что протокол передачи данных HTTP реализован в каждом языке программирования и любой операционной системе.
Самые популярные области использования REST API:
- Согласованное взаимодействие приложений для мобильных устройств и серверов.
- REST API используется для создания микросервисной архитектуры. Это разбивка больших приложений на микросервисы.
- Открытие доступа к программам других разработчиков. Например, Stripe API позволяет встраивать систему обработки платежей с банковских карт в мобильные приложения.
На запрос клиента приходит информирование о результатах в виде HTTP-статуса. Это числовой код. Ошибки REST API, например, код 401 и 403, свидетельствуют о блокировке по соображениям безопасности. А код 200 означает успех операции. Код 500 говорит об ошибке сервера. Такие коды можно сравнить с пользовательскими сообщениями о результатах работы программы.
В REST API имеется возможность передачи файлов и данных в специальных форматах (XML, JSON, Protobuf).
Существуют и другие варианты того, как написать удобный API. Это протоколы JSON, XML и синтаксис GraphQL. Однако REST является самым популярным инструментом, который широко используется с целью построения взаимодействия между программами.
на курсы от GeekBrains до 24 ноября
Разработчиками накоплен большой практический опыт в REST API в различных приложениях и сайтах. Поэтому можно смело утверждать, что REST API — это универсальное решение для большинства систем.