В чем разница между API и REST API?
API — это общий термин, который означает «программный интерфейс приложения». Rest API — это конкретный API, под названием REST, описывающий протокол взаимодействия с веб-сервисом.
Отслеживать
ответ дан 29 мар 2017 в 14:28
Александр Мартынцев Александр Мартынцев
1,659 8 8 серебряных знаков 16 16 бронзовых знаков
- api
- rest
- терминология
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Что такое RESTful API?
RESTful API — это интерфейс,используемые двумя компьютерными системами для безопасного обмена информацией через Интернет. Большинство бизнес-приложений должны взаимодействовать с другими внутренними и сторонними приложениями для выполнения различных задач. Например, чтобы генерировать ежемесячные платежные ведомости, ваша внутренняя бухгалтерская система должна обмениваться данными с банковской системой вашего клиента, чтобы автоматизировать выставление счетов и взаимодействовать с внутренним приложением по учету рабочего времени. RESTful API поддерживают такой обмен информацией, поскольку они следуют безопасным, надежным и эффективным стандартам программного взаимодействия.
Что такое API?
Интерфейс прикладного программирования (API) определяет правила, которым необходимо следовать для связи с другими программными системами. Разработчики внедряют или создают API-интерфейсы, чтобы другие приложения могли программно взаимодействовать с их приложениями. Например, приложение с табелем рабочего времени содержит API, который запрашивает полное имя сотрудника и диапазон дат. Получив эту информацию, интерфейс внутренне обрабатывает табель рабочего времени сотрудника и возвращает количество часов, отработанных за указанный период.
Таким образом, сетевой API функционирует как шлюз между клиентами и ресурсами в Интернете.
Клиенты
Клиенты — это пользователи, которые хотят получить доступ к информации в Интернете. Клиентом может быть человек или программная система, использующая API. Например, разработчики могут создавать программы, которые получают доступ к данным о погоде из метеосистемы. Также получить доступ к этим данным можно из браузера, посетив веб-сайт с информацией о погоде.
Ресурсы
Ресурсы — это информация, которую различные приложения предоставляют своим клиентам. Ресурсы могут быть изображениями, видео, текстом, числами или данными любого типа. Компьютер, который предоставляет ресурсы клиенту, также называется сервером. API позволяет организациям совместно использовать ресурсы и предоставляет веб-службы, обеспечивая безопасность, контроль и аутентификацию. Кроме того, API помогает определить, какие клиенты могут получить доступ к определенным внутренним ресурсам.
Что такое REST?
Representational State Transfer (REST) — это программная архитектура, которая определяет условия работы API. Первоначально REST создавалась как руководство для управления взаимодействиями в сложной сети, такой как Интернет. Архитектуру на основе REST можно использовать для поддержки высокопроизводительной и надежной связи в требуемом масштабе. Ее можно легко внедрять и модифицировать, обеспечивая прозрачность и кросс-платформенную переносимость любой системы API.
Разработчики могут создавать API с использованием нескольких архитектур. API-интерфейсы, соответствующие архитектурному стилю REST, называются REST API. Веб-службы, реализующие архитектуру REST, называются веб-службами RESTful. Как правило, термин RESTful API относится к сетевым RESTful API. Однако REST API и RESTful API являются взаимозаменяемыми терминами.
Ниже приведены некоторые принципы архитектурного стиля REST:
Единый интерфейс
Единый интерфейс является конструктивной основой любого веб-сервиса RESTful. Это указывает на то, что сервер передает информацию в стандартном формате. Отформатированный ресурс в REST называется представлением. Этот формат может отличаться от внутреннего представления ресурса в серверном приложении. Например, сервер может хранить данные в виде текста, но отправлять их в формате представления HTML.
Единый интерфейс накладывает четыре архитектурных ограничения:
- Запросы должны идентифицировать ресурсы. Это происходит за счет единого идентификатора ресурсов.
- Клиенты имеют достаточно информации в представлении ресурса, чтобы при желании изменить или удалить ресурс. Сервер выполняет это условие, отправляя метаданные, которые дополнительно описывают ресурс.
- Клиенты получают информацию о дальнейшей обработке представлений. Сервер реализует это, отправляя описательные сообщения, где содержатся метаданные о том, как клиент может использовать их оптимальным образом.
- Клиенты получают информацию обо всех связанных ресурсах, необходимых для выполнения задачи. Сервер реализует это, отправляя гиперссылки в представлении, чтобы клиенты могли динамически обнаруживать больше ресурсов.
Отсутствие сохранения состояния
В архитектуре REST отсутствие сохранения состояния относится к методу связи, при котором сервер выполняет каждый клиентский запрос независимо от всех предыдущих запросов. Клиенты могут запрашивать ресурсы в любом порядке, и каждый запрос либо изолирован от других запросов, либо его состояние не сохраняется. Это конструктивное ограничение REST API подразумевает, что сервер может каждый раз полностью понять и выполнить запрос.
Многоуровневая система
В многоуровневой системной архитектуре клиент может подключаться к другим авторизованным посредникам между клиентом и сервером и по-прежнему получать ответы от сервера. Серверы также могут передавать запросы другим серверам. Вы можете спроектировать свою веб-службу RESTful для работы на нескольких серверах с несколькими уровнями (безопасностью, приложениями и бизнес-логикой), совместно выполняющих клиентские запросы. Эти уровни остаются невидимыми для клиента.
Емкость кэша
Веб-службы RESTful поддерживают кэширование, то есть процесс сохранения некоторых ответов на клиенте или на посреднике для сокращения времени ответа сервера. Например, вы заходите на веб-сайт с общими изображениями верхнего и нижнего колонтитулов на каждой странице. Каждый раз, когда вы посещаете новую страницу веб-сайта, сервер должен повторно отправлять одни и те же изображения. Чтобы избежать этого, клиент кэширует или сохраняет эти изображения после первого ответа, а затем использует изображения из кэша. Веб-службы RESTful управляют кэшированием с помощью ответов API, которые определяют себя как кэшируемые или некэшируемые.
Код по запросу
В архитектурном стиле REST серверы могут временно расширять или настраивать функциональные возможности клиента, передавая код программного обеспечения. Например, когда вы заполняете регистрационную форму на каком-либо веб-сайте, ваш браузер сразу же выделяет все допущенные ошибки (например, неверные номера телефонов). Это происходит благодаря коду, отправленному сервером.
В чем заключаются преимущества RESTful API?
RESTful API обладает следующими преимуществами:
Возможность масштабирования
Системы, реализующие REST API, могут эффективно масштабироваться благодаря оптимизации взаимодействия между сервером и клиентом по REST. Отсутствие сохранения состояния снимает нагрузку с сервера: серверу не нужно сохранять информацию о предыдущих запросах клиента. Отлаженное кэширование частично или полностью устраняет некоторые взаимодействия между клиентом и сервером. Перечисленные функции предполагают масштабируемость и не ограничивают пропускную способность, что может привести к снижению производительности.
Гибкость
Веб-службы RESTful поддерживают полное разделение клиента и сервера. Они упрощают и разделяют различные серверные компоненты, чтобы каждая часть могла развиваться независимо. Изменения платформы или технологии в серверном приложении не влияют на клиентское приложение. Возможность разделения функций приложения на уровни еще больше повышает гибкость. Например, разработчики могут вносить изменения в уровень базы данных, не переписывая логику приложения.
Независимость
REST API не зависит от используемой технологии. Вы можете создавать как клиентские, так и серверные приложения на разных языках программирования, не затрагивая структуру API. Также можно изменить базовую технологию на любой стороне, не влияя на обмен данными.
Как работает RESTful API?
Базовый принцип работы RESTful API совпадает с принципом работы в Интернете. Клиент связывается с сервером с помощью API, когда ему требуется какой-либо ресурс. Разработчики описывают принцип использования REST API клиентом в документации на API серверного приложения. Ниже представлены основные этапы запроса REST API:
- Клиент отправляет запрос на сервер. Руководствуясь документацией API, клиент форматирует запрос таким образом, чтобы его понимал сервер.
- Сервер аутентифицирует клиента и подтверждает, что клиент имеет право сделать этот запрос.
- Сервер получает запрос и внутренне обрабатывает его.
- Сервер возвращает ответ клиенту. Ответ содержит информацию, которая сообщает клиенту, был ли запрос успешным. Также запрос включает сведения, запрошенные клиентом.
Сведения о запросе и ответе REST API могут немного различаться в зависимости от того, как разработчики проектируют API.
Что содержит клиентский запрос RESTful API?
API RESTful требует, чтобы запросы содержали следующие основные компоненты:
Уникальный идентификатор ресурса
Сервер присваивает каждому ресурсу уникальный идентификатор ресурса. В случае со службами REST сервер идентифицирует ресурсы с помощью универсального указателя ресурсов (URL). URL указывает путь к ресурсу. URL аналогичен адресу веб-сайта, который вы вводите в браузере для посещения веб-страницы. URL также называется адресом запроса и четко указывает серверу, что требуется клиенту.
Метод
Как правило, разработчики реализуют RESTful API с помощью протокола передачи гипертекста (HTTP). Метод HTTP сообщает серверу, что ему необходимо сделать с ресурсом. Ниже приведены четыре распространенных метода HTTP:
Клиенты используют GET для доступа к ресурсам, расположенным на сервере по указанному URL. Они могут кэшировать запросы GET и отправлять параметры в запросе RESTful API, чтобы сообщить серверу о необходимости фильтровать данные перед отправкой.
Клиенты используют POST для отправки данных на сервер. При этом они включают в запрос представления данных. Отправка одного и того же запроса POST несколько раз имеет побочный эффект — многократное создание одного и того же ресурса.
Клиенты используют PUT для обновления существующих на сервере ресурсов. В отличие от POST, отправка одного и того же запроса PUT несколько раз дает один и тот же результат в веб-службе RESTful.
DELETE
Клиенты используют запрос DELETE для удаления ресурса. Запрос DELETE может изменить состояние сервера. Однако если у пользователя нет соответствующей аутентификации, запрос завершается ошибкой.
Заголовки HTTP
Заголовки запросов — это метаданные, которыми обмениваются клиент и сервер. Например, заголовок запроса указывает формат запроса и ответа, предоставляет информацию о статусе запроса и т. д.
Данные
Запросы REST API могут включать данные для успешной работы POST, PUT и других методов HTTP.
Параметры
Запросы RESTful API могут включать параметры, которые предоставляют серверу более подробную информацию о необходимых действиях. Ниже приведены некоторые типы параметров:
- Параметры пути, которые определяют детали URL.
- Параметры запроса, которые запрашивают дополнительную информацию о ресурсе.
- Параметры cookie, которые быстро аутентифицируют клиентов.
Что такое методы аутентификации RESTful API?
Веб-служба RESTful должна аутентифицировать запросы для последующей отправки ответа. Аутентификация — это процесс подтверждения личности. Например, для подтверждения личности можно использовать удостоверение личности или водительские права. Точно так же клиенты службы RESTful должны подтвердить свою личность серверу, чтобы установить доверие.
RESTful API поддерживает четыре распространенных метода аутентификации:
HTTP-аутентификация
HTTP определяет некоторые схемы аутентификации, которые можно использовать при реализации REST API. Ниже представлены две такие схемы:
Базовая аутентификация
При базовой аутентификации клиент отправляет имя пользователя и пароль в заголовке запроса. Он кодирует их с помощью метода кодирования base64, который преобразует пару имя пользователя–пароль в набор из 64 символов для безопасной передачи.
Аутентификация носителя
Аутентификация носителя — это процесс предоставления управления доступом носителю токена. Как правило, токен носителя представляет собой зашифрованную строку символов, которую сервер генерирует в ответ на запрос входа в систему. Клиент отправляет токен в заголовках запроса для доступа к ресурсам.
Ключи API
Ключи API — это еще один вариант аутентификации REST API. При таком подходе сервер генерирует уникальное значение и присваивает его первому клиенту. Всякий раз, когда клиент пытается получить доступ к ресурсам, он использует для верификации уникальный ключ API. Ключи API менее надежны: поскольку клиент должен передавать ключ, повышается вероятность его кражи.
OAuth
OAuth сочетает в себе пароли и токены для безопасного входа в любую систему. Сначала сервер запрашивает пароль, а затем дополнительный токен для завершения процесса авторизации. Он может проверять токен в любое время, а также через определенный период времени в соответствии с областью и сроком действия.
Что содержит ответ сервера RESTful API?
Принципы REST требуют, чтобы ответ сервера содержал следующие компоненты:
Строка состояния
Строка состояния содержит трехзначный код состояния, который сообщает об успешном или неудачном выполнении запроса. Например, коды 2XX указывают на успешное выполнение, а коды 4XX и 5XX — на ошибки. Коды 3XX указывают на перенаправление URL.
Ниже приведены некоторые распространенные коды состояния:
- 200: общий ответ об успешном выполнении
- 201: ответ об успешном выполнении метода POST
- 400: неверный запрос, который сервер не может обработать
- 404: ресурс не найден
Текст сообщения
Текст ответа содержит представление ресурса. Сервер выбирает подходящий формат представления на основе содержания заголовков запроса. Клиенты могут запрашивать информацию в форматах XML или JSON: они определяют запись данных в виде обычного текста. Например, если клиент запрашивает имя и возраст человека по имени Джон, сервер возвращает представление JSON в следующем формате:
Заголовки
Ответ также содержит заголовки или метаданные об ответе. Они дают более подробный контекст ответа и включают такую информацию, как название сервера, кодировка, дата и тип контента.
Как AWS может помочь в управлении RESTful API?
Шлюз API Amazon – это полностью управляемый сервис для разработчиков, предназначенный для создания, публикации, обслуживания, мониторинга и обеспечения безопасности API в любых масштабах. API Gateway позволяет создавать RESTful API для приложений двусторонней связи в реальном времени.
С помощью API Gateway можно:
- Предоставить пользователям высокую производительность при запросах и ответах API.
- Разрешить доступ к API с помощью AWS Identity and Access Management (IAM) и Amazon Cognito, которые обеспечивают встроенную поддержку OAuth.
- Запускать несколько версий одного и того же API одновременно с помощью API Gateway, что позволяет быстро дорабатывать, тестировать и запускать новые версии.
- Отслеживать метрики производительности и информацию о запросах API, задержке данных и частоте ошибок из API Gateway.
Начните работу со шлюзом API, воспользовавшись нашим пошаговым руководством и создав аккаунт AWS уже сегодня.
Демистификация веб-API и Rest API: сравнение
Вы когда-нибудь задумывались, что заставляет наш цифровой мир работать так, как он работает? Что позволяет нам просматривать веб-сайты, получать доступ к онлайн-сервисам и отправлять информацию по всему миру в мгновение ока?
Что ж, здесь есть секретный ингредиент: API (Web API и Rest API).
API означает «Интерфейс прикладного программирования» и, по сути, представляет собой набор инструкций, которые позволяют одной компьютерной программе взаимодействовать с другой. Проще говоря, API позволяют различным приложениям понимать друг друга, независимо от того, какое программное обеспечение или язык использовалось для их создания. В совокупности эти приложения составляют основу нашего цифрового мира!
Существует два основных типа API: REST (передача репрезентативного состояния) и Интернет. Оба являются мощными инструментами, позволяющими приложениям «общаться» друг с другом, однако у них есть некоторые заметные различия. В этой статье мы рассмотрим эти различия, чтобы вы могли принять обоснованное решение о том, какой API лучше всего подходит для вашего проекта. Давайте начнем с сравнения веб-API и Rest API!
Что такое API?
Интерфейсы прикладного программирования (API) стали ключевыми компонентами практически любого современного приложения. Они используются для подключения различных приложений, обмена данными между ними и обеспечивают быстрый способ разработки более качественных веб-сервисов. По сути, API обеспечивают «мост» между различными приложениями, поэтому ваши конечные пользователи могут получить доступ к множеству функций, не испытывая каких-либо технических трудностей.
С практической точки зрения API помогают добиться плавной интеграции между двумя или более приложениями. Вместо того, чтобы создавать всю систему обмена данными с нуля, разработчики используют API — которые по сути представляют собой готовые коды — чтобы облегчить этот процесс быстро и эффективно. Таким образом, они экономят бесценное время разработчиков и упрощают сложные системы.
Что такое REST API?
Теперь, когда вы знакомы с тем, что такое API и как они работают, пришло время сосредоточиться на двух наиболее распространенных типах: REST API против веб-API. Начнем с RESTful API. В двух словах, это тип API, основанный на представительская государственная передача (REST). Этот архитектурный стиль позволяет разработчикам легко и последовательно получать доступ к веб-сервисам, поэтому вместо нескольких вызовов базы данных они могут получить все необходимое с помощью одного простого запроса.
REST известен своей производительностью и масштабируемостью, а также архитектурой, ориентированной на соединение. Он также имеет такие функции, как кэширование, которые делают его идеальным для создания приложений, требующих частой загрузки или данных, которые не особенно чувствительны ко времени.
Разработчики часто предпочитают использовать RESTful API вместо веб-API для обработки больших объемов данных или обеспечения совместимости. RESTful API легче интегрировать с компонентами разных поставщиков и платформ. RESTful API не ограничиваются веб-приложениями, их также можно использовать для разработки мобильных приложений.
Что такое веб-API?
Веб-API — это тип интерфейса прикладного программирования (API), который позволяет разработчикам получать доступ к веб-сервисам через четко определенные протоколы, такие как HTTP / HTTPS. Это позволяет разработчикам легко интегрировать свои приложения с веб-инструментами, такими как сайты социальных сетей, службы потокового мультимедиа и другие онлайн-платформы.
Вы можете думать о веб-API как о своего рода «посреднике» между двумя приложениями — они позволяют двум приложениям взаимодействовать друг с другом. Это позволяет разработчикам создавать мощные приложения, использующие данные из различных источников. Например, вы можете создать приложение, использующее данные метеорологической службы и интернет-магазина.
Ключевой особенностью веб-API является отсутствие состояния, то есть они не хранят данные или пользовательскую информацию. Такая безгражданность позволяет их повторное использование без необходимости дополнительной установки или настройки. Это делает их очень эффективными и удобными для разработчиков, которым необходим быстрый и простой доступ к данным из нескольких источников.
Ключевые различия: веб-API и Rest API
Форматы данных
API REST поддерживают JSON, XML и другие форматы, тогда как веб-API поддерживают только XML. Разработчикам следует выбирать подходящий API в зависимости от требований к формату данных.
протоколы
API REST используют HTTP/HTTPS, а веб-API в дополнение к HTTP/HTTPS используют такие протоколы, как SOAP и BEEP. Выбор протокола может повлиять на скорость и безопасность, поэтому важно учитывать это при выборе API.
абстракция
REST — это архитектурный стиль, который использует устоявшиеся протоколы связи, такие как HTTP, для создания легко переводимых и понятных API. Напротив, веб-API предлагают определенные функции для использования на странице или веб-сайте.
Взаимодействие
REST включает взаимодействие клиент-сервер с использованием команд HTTP, таких как GET, PUT и POST. Веб-API позволяют веб-страницам загружать компоненты с удаленных компьютеров для более пассивного взаимодействия с меньшим участием человека.
Проектируйте API в среде без программирования
Как выбрать правильный API для вашего варианта использования (веб-API или Rest API)
При выборе API важно учитывать различия между веб-API и Rest API.
Безопасность
Одним из ключевых факторов, который следует учитывать, является безопасность. Веб-API часто требуют более высокого уровня безопасности, поскольку они используются более широким кругом клиентов с разными целями. С другой стороны, REST API обычно разрабатываются для внутренних пользователей и приложений и поэтому требуют меньшего количества протоколов безопасности.
Перфоманс
Еще одним важным фактором является производительность. REST API обычно обеспечивают более высокую производительность, чем веб-API, поскольку они имеют меньший размер запросов и поддерживают HTTP-кэширование.
Качество обслуживания (QoS)
Ваши требования к качеству обслуживания также должны влиять на выбор API. Если вам нужна потоковая передача данных в реальном времени или push-уведомления, лучшим вариантом может быть веб-API с функцией прямого подключения. Однако если вам требуется надежная обработка на стороне сервера, REST API может оказаться более подходящим.
Заключение
API — это актив современного бизнеса, предоставляющий эффективные и безопасные средства доступа к данным и обмена ими. Важно различать REST API и веб-API, чтобы определить их правильное использование.
API REST используют протокол HTTP для отправки и получения данных. С другой стороны, веб-API полагаются на несколько протоколов связи, таких как SOAP, XML-RPC и JSON-RPC. REST API наиболее широко используются для интеграции данных, обеспечивая эффективную передачу данных. Между тем, веб-API используются для более эффективного доступа к данным на удаленных серверах.
В целом, понимание различий между REST API и веб-API имеет решающее значение для выбора подходящего API для конкретного приложения.
REST API в Astera Управление API
Astera SoftwareУправление API Инструмент помогает организациям проектировать, публиковать и управлять REST API. Этот инструмент позволяет компаниям контролировать весь жизненный цикл своих API, от проектирования до вывода из эксплуатации.
Работы С Нами Astera Управление API позволяет пользователям легко создавать и публиковать REST API, настраивать контроль доступа и отслеживать использование и производительность API в режиме реального времени. Более того, платформа позволяет разработчикам использовать API и интегрироваться с ними, оптимизировать рабочие процессы и быстрее создавать приложения.
Он также предоставляет удобный интерфейс, который упрощает управление API, упрощая предприятиям интеграцию API в свои системы. Инструмент поддерживает различные методы аутентификации, такие как ОАут 2.0, ключ API и базовую аутентификацию для обеспечения безопасного доступа к API.
REST API
REST API — это способ взаимодействия сайтов и веб-приложений с сервером. Его также называют RESTful.
Освойте профессию
«Fullstack-разработчик на Python»
Термин состоит из двух аббревиатур, которые расшифровываются следующим образом.
API (Application Programming Interface) — это код, который позволяет двум приложениям обмениваться данными с сервера. На русском языке его принято называть программным интерфейсом приложения.
REST (Representational State Transfer) — это способ создания API с помощью протокола HTTP. На русском его называют «передачей состояния представления».
Технологию REST API применяют везде, где пользователю сайта или веб-приложения нужно предоставить данные с сервера. Например, при нажатии иконки с видео на видеохостинге REST API проводит операции и запускает ролик с сервера в браузере. В настоящее время это самый распространенный способ организации API. Он вытеснил ранее популярные способы SOAP и WSDL.
У RESTful нет единого стандарта работы: его называют «архитектурным стилем» для операций по работе с сервером. Такой подход предложил в 2000 году в своей диссертации программист и исследователь Рой Филдинг, один из создателей протокола HTTP.
Профессия / 12 месяцев
Веб-разработчик с нуля
Создавайте нужные любому бизнесу сервисы
Читайте также Востребованные IT-профессии 2023 года: на кого учиться онлайн
Принципы REST API
У RESTful есть 7 принципов написания кода интерфейсов.
Отделение клиента от сервера (Client-Server). Клиент — это пользовательский интерфейс сайта или приложения, например, поисковая строка видеохостинга. В REST API код запросов остается на стороне клиента, а код для доступа к данным — на стороне сервера. Это упрощает организацию API, позволяет легко переносить пользовательский интерфейс на другую платформу и дает возможность лучше масштабировать серверное хранение данных.
Отсутствие записи состояния клиента (Stateless). Сервер не должен хранить информацию о состоянии (проведенных операций) клиента. Каждый запрос от клиента должен содержать только ту информацию, которая нужна для получения данных от сервера.
Кэшируемость (Casheable). В данных запроса должно быть указано, нужно ли кэшировать данные (сохранять в специальном буфере для частых запросов). Если такое указание есть, клиент получит право обращаться к этому буферу при необходимости.
Единство интерфейса (Uniform Interface). Все данные должны запрашиваться через один URL-адрес стандартными протоколами, например, HTTP. Это упрощает архитектуру сайта или приложения и делает взаимодействие с сервером понятнее.
Многоуровневость системы (Layered System). В RESTful сервера могут располагаться на разных уровнях, при этом каждый сервер взаимодействует только с ближайшими уровнями и не связан запросами с другими.
Предоставление кода по запросу (Code on Demand). Серверы могут отправлять клиенту код (например, скрипт для запуска видео). Так общий код приложения или сайта становится сложнее только при необходимости.
Начало от нуля (Starting with the Null Style). Клиент знает только одну точку входа на сервер. Дальнейшие возможности по взаимодействию обеспечиваются сервером.
Стандарты и методы
Сам по себе RESTful не является стандартом или протоколом. Разработчики руководствуются принципами REST API для создания эффективной работы серверов для своих сайтов и приложений. Принципы позволяют выстраивать серверную архитектуру с помощью других протоколов: HTTP, URL, JSON и XML.
Это отличает REST API от метода простого протокола доступа к объектам SOAP (Simple Object Access Protocol), созданного Microsoft в 1998 году. В SOAP взаимодействие по каждому протоколу нужно прописывать отдельно только в формате XML. Также в SOAP нет кэшируемости запросов, более объемная документация и реализация словаря, отдельного от HTTP. Это делает стиль REST API более легким в реализации, чем стандарт SOAP.
Несмотря на отсутствие стандартов, при создании REST API есть общепринятые лучшие практики, например:
- использование защищенного протокола HTTPS
- использование инструментов для разработки API Blueprint и Swagger
- применение приложения для тестирования Get Postman
- применение как можно большего количества HTTP-кодов (список)
- архивирование больших блоков данных
Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все
Архитектура
REST API основывается на протоколе передачи гипертекста HTTP (Hypertext Transfer Protocol). Это стандартный протокол в интернете, созданный для передачи гипертекста. Сейчас с помощью HTTP отправляют любые другие типы данных.
Каждый объект на сервере в HTTP имеет свой уникальный URL-адрес в строгом последовательном формате. Например, второй модуль обучающего видео про Python будет храниться на сервере по адресу http://school.ru/python/2.
В REST API есть 4 метода HTTP, которые используют для действий с объектами на серверах:
- GET (получение информации о данных или списка объектов)
- DELETE (удаление данных)
- POST (добавление или замена данных)
- PUT (регулярное обновление данных)
Такие запросы еще называют идентификаторами CRUD: create (создать), read (прочесть), update (обновить) delete (удалить). Это стандартный набор действий для работы с данными. Например, чтобы обновить видео про Python по адресу http://school.ru/python/2 REST API будет использовать метод PUT, а для его удаления — DELETE.
В каждом HTTP-запросе есть заголовок, за которым следует описание объекта на сервере — это и есть его состояние.
Как работает RESTful
Например, на сайте отеля есть система бронирования номеров трех типов: эконом, стандарт и люкс. В REST API каждому типу будет присвоен свой URL на странице бронирования:
Такие URL однозначно определяют ресурс на сервисе — данные о доступных номерах каждого класса. Чтобы взаимодействовать с этими ресурсам REST API применяет CRUD-команды протокола HTTP. Например, GET econom для передачи клиенту информации о номерах класса эконом. В RESTful такие запросы будут кэшироваться — клиенту не нужно обращаться к серверу снова при повторном запросе.
Также такая архитектура позволяет расставить приоритеты в обслуживании. Например, использование более производительных серверов для запросов на номера класса люкс. Такую архитектуру легко масштабировать: при появлении новых классов номеров, система будет обращаться напрямую к ресурсам по новым URL.
Где применяют
REST API рекомендуют использовать в следующих случаях:
- ограниченная пропускная способность соединения с сервером;
- есть необходимость кэшировать запросы;
- приложение или сайт будет значительно масштабироваться;
- приложение или сайт использует AJAX (метод фонового обмена данными с сервером).
REST API используют чаще альтернативных методов, например SOAP. Помимо сайтов и веб-приложений RESTful используют для облачных вычислений.
Например, REST API используется в социальной сети Twitter. Запросы отправляются в формате JSON. Разработчики сторонних приложений могут использовать данные Twitter с помощью REST-запросов. Например:
GET geo/id/:place_id
Возвращает информацию о местоположении пользователей.
GET geo/reverse_geocode
Возвращает до 20 возможных местоположений по заданным координатам.
Возвращает местоположения, которые могут быть прикреплены к твитам.
Полезные ссылки
Веб-разработчик с нуля
Веб-разработчик — мастер на все руки. Он создает программы и приложения для любых сфер и компаний: от небольшой кофейни до международных банков. Станьте специалистом, который создает востребованный продукт
Статьи по теме: