Получите бесплатно 4 курса для лёгкого старта работы в IT
Получить курсы бесплатно
ГлавнаяБлогREST API: принципы, применение
REST API
04.07.2023
12 589
Время чтения: 13 минут

REST API: принципы, применение

04.07.2023
12 589
Время чтения: 13 минут
Сохранить статью:
Сохранить статью:

Что это? REST API (Representational State Transfer) – это архитектурный подход, описывающий рамки взаимодействия с API (распределенного приложения в сети). Это не протокол, а скорее список рекомендаций.

Где применяется? REST API используется при работе с запросами на сайтах. Подход RESTful применяют там, где необходимо кэшировать данные, в дальнейшем масштабировать сайт или приложение.

В статье рассказывается:

  1. Основа REST API
  2. Что собой представляет REST API
  3. Как работает и где применяют REST API
  4. 7 принципов REST API
  5. Нюансы взаимодействия c REST API
  6. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.
    Бесплатно от Geekbrains

Основа REST API

API (Application Programming Interface) представляет собой набор определений и протоколов. Разработчики создают API-интерфейсы для взаимодействия и обмена данными одного приложения или сайта с другими. API функционирует как своеобразный шлюз или посредник между клиентами и сервером.

Интерфейс API разрабатывается таким образом, чтобы программное обеспечение могло запросить определенный тип данных через сеть. Интерфейс совместим с любыми языками программирования, операционными системами, программами, сайтами, приложениями, flash и т.д.

Основа REST API
Основа REST API

Рассмотрим на примере бухгалтерского сервиса, выставляющего счета на оплату. Они хранятся на сервере, с которым приложение связывается через API.

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

HTTP несложен. Понять его специфику можно на примере. Возьмем адрес http://website.com/something. В нем выделим 2 части. Первая: http://website.com. Это адрес сервера. Вторая: /something. Это адрес ресурса на удаленном сервере.

Узнай, какие ИТ - профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

pdf 3,7mb
doc 1,7mb
Уже скачали 27894 pdf иконка

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.

Representational State Transfer представляет собой способ создания API, использующий протокол передачи данных HTTP. Другими словами, 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

Программная архитектура REST API расставляет приоритетность. В случае с бронированием номеров в отеле это использование высокопроизводительных серверов под запрос клиента на улучшенные номера. Архитектура REST API масштабируется. Когда освобождаются номера, система будет запрашивать данные у ресурсов по новым URL.

Методы REST API будут наиболее эффективны в следующих случаях:

  • при ограниченной пропускной способности;
  • при необходимости кэшировать запросы;
  • при необходимости поддержания высокопроизводительной и надежной связи в требуемом масштабе для REST API приложения;
  • при применении разработчиками подхода AJAX, который заключается в фоновом обмене данных браузера с веб-сервером.
Применение REST API популярнее, нежели альтернативные варианты программной архитектуры вроде SOAP. Данную программную архитектуру используют для большого числа разнообразных проектов. REST API подходит не только для создания архитектуры веб-разработок, iOS приложений, Windows Phone приложении, iOT устройств, а также для облачных сервисов.

В 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-адрес ассоциируется с одними данными. Это делает архитектурный стиль сайта/приложения проще, а взаимодействие с сервером — понятнее.

Дарим скидку от 60%
на курсы от GeekBrains до 05 мая
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку

Многоуровневая архитектура системы

В RESTful возможна группировка серверов на разных уровнях, каждый из которых выполняет определенный функционал и выступает посредником между клиентом и сервером.

Кодирование по требованию

Серверы предоставляют клиенту статические представления ресурсов. При использовании программной архитектуры REST API клиент, к примеру, может получить код рендеринга для виджетов. Общий код усложняется лишь при необходимости.

Старт с нуля

Клиент сталкивается только со стартовой точкой входа на сервер. Все дальнейшее взаимодействие обеспечивается сервером.

Нюансы взаимодействия c REST API

Архитектурный стиль REST API является одним из лучших решений для взаимодействия между любыми веб-приложениями и сайтами. Это связано с тем, что протокол передачи данных HTTP реализован в каждом языке программирования и любой операционной системе.

Только до 29.04
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:
ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»
Чтобы получить файл, укажите e-mail:
Введите e-mail, чтобы получить доступ к документам
Подтвердите, что вы не робот,
указав номер телефона:
Введите телефон, чтобы получить доступ к документам
Уже скачали 52300

Самые популярные области использования REST API:

  • Согласованное взаимодействие приложений для мобильных устройств и серверов.
  • REST API используется для создания микросервисной архитектуры. Это разбивка больших приложений на микросервисы.
  • Открытие доступа к программам других разработчиков. Например, Stripe API позволяет встраивать систему обработки платежей с банковских карт в мобильные приложения.

На запрос клиента приходит информирование о результатах в виде HTTP-статуса. Это числовой код. Ошибки REST API, например, код 401 и 403, свидетельствуют о блокировке по соображениям безопасности. А код 200 означает успех операции. Код 500 говорит об ошибке сервера. Такие коды можно сравнить с пользовательскими сообщениями о результатах работы программы.

Нюансы взаимодействия c REST API
Нюансы взаимодействия c REST API

В REST API имеется возможность передачи файлов и данных в специальных форматах (XML, JSON, Protobuf).

Существуют и другие варианты того, как написать удобный API. Это протоколы JSON, XML и синтаксис GraphQL. Однако REST является самым популярным инструментом, который широко используется с целью построения взаимодействия между программами.

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

Хотите стать мастером универсального языка программирования? Узнайте, как создавать сайты, приложения и нейросети с курсом Python-разработчика. Станьте востребованным специалистом в IT сфере уже через 9 месяцев обучения. Присоединяйтесь к дружной команде опытных преподавателей и студентов, которые уже достигли успеха в сфере программирования.
Оцените статью
Рейтинг: 2.56
( голосов 9 )
Поделиться статьей
Добавить комментарий

Сортировать:
По дате публикации
По рейтингу
До конца акции осталось
0 дней 00:00:00
Получите бесплатно 3 курса для лёгкого старта работы в IT
  • Начни зарабатывать от 210 000 ₽ в ИТ-сфере
  • Работай там, где ты хочешь: дома, на море, и даже на концерте
Получить бесплатно
Забрать подарок

Получите подробную стратегию для новичков на 2023 год, как с нуля выйти на доход 200 000 ₽ за 7 месяцев

Подарки от Geekbrains из закрытой базы:
Осталось 17 мест

Поздравляем!
Вы выиграли 4 курса по IT-профессиям.
Дождитесь звонка нашего менеджера для уточнения деталей

Иван Степанин
Иван Степанин печатает ...