Найти тему
InformaticsEasy AI

REST API - что это?

Оглавление

REST API (Representational State Transfer Application Programming Interface) - это архитектурный стиль веб-сервисов, который позволяет взаимодействовать с удаленными серверами и обмениваться данными. Он основан на принципах REST, которые определяют, как клиент и сервер должны взаимодействовать друг с другом.

REST (Representational State Transfer) — это способ создания API с помощью протокола HTTP. На русском его называют «передачей состояния представления».

API (Application Programming Interface) — это код, который позволяет двум приложениям обмениваться данными с сервера. На русском языке его принято называть программным интерфейсом приложения.

Место REST API в приложении.
Место REST API в приложении.

REST API предоставляет набор методов (GET, POST, PUT, DELETE и т. д.), которые позволяют клиентам выполнять операции с ресурсами на сервере. Клиент отправляет запросы на сервер, указывая метод, URL и данные (если необходимо), а сервер возвращает ответ с данными или статусом операции. REST API использует стандартные протоколы передачи данных, такие как HTTP, и форматы данных, такие как JSON или XML, для обмена информацией между клиентом и сервером. Он позволяет разработчикам создавать гибкие и масштабируемые веб-сервисы, которые могут быть использованы различными клиентами, включая веб-приложения, мобильные приложения и другие сервисы. REST API широко используется в различных областях, включая социальные сети, электронную коммерцию, финансовые сервисы и многое другое. Он позволяет разработчикам интегрировать свои приложения с другими сервисами и создавать новые функциональности на основе доступных данных.

Информацию по более углубленному пониманию можно посмотреть в интернете. Вот вам примерные темы:

  • Введение в REST API и его основные принципы.
  • Описание структуры REST API и его компонентов, таких как ресурсы, методы и запросы.
  • Примеры использования REST API в различных сферах бизнеса.
  • Различные инструменты и технологии, которые помогают разрабатывать и тестировать REST API.
  • Рекомендации по проектированию и разработке REST API для обеспечения безопасности и эффективности.

Основные методы

  • POST - создание или регистрация записей.
  • GET - чтение информации. Запросы, сформированные таким методом, отвечают за простую передачу данных с сервера, но не удаляют и не исправляют их.
  • PUT - изменение или обновление данных.
  • DELETE - удаление данных.
  • OPTIONS - этот метод не используется для каких-либо манипуляций с ресурсами. Но он полезен, когда клиент не знает других методов, поддерживаемых для ресурса, и используя этот метод, клиент может получить различное представление ресурса.
  • HEAD - этот метод используется для запроса ресурса c сервера. Он очень похож на метод GET, но HEAD должен отправлять запрос и получать ответ только в заголовке. Согласно спецификации HTTP, этот метод не должен использовать тело для запроса и ответа.

Эти HTTP-запросы также называют идентификаторами CRUD (create, read, update, delete: создание/чтение/обновление/удаление). Они определяют традиционные виды взаимодействия с данными.

REST API применяется:

  • При разработке микросервисных приложений
  • Если требуется внести изменения в уровень базы данных, не задевая логику приложения
  • При предоставлении доступа к программам поставщиков «третьей стороны»
  • При ограниченной пропускной способности соединения с сервером

Принципы 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). Клиент знает только одну точку входа на сервер. Дальнейшие возможности по взаимодействию обеспечиваются сервером.

Best practices

  1. Конечные точки в URL – имя существительное, не глагол (items)
  2. Множественное число (books)
  3. Документация (типа DOCS или Swagger)
  4. Версия вашего приложения (api/v1, api/v2)
  5. Пагинация (получение частей данных, не всех сразу)
  6. Использование SSL (свой механизм аутентификации, token)
  7. HTTP методы (CRUD)
  8. Эффективное использование кодов ответов HTTP (обработка получаемых HTTP-кодов ошибок - 2хх, 3хх, 4хх, 5хх)

Жду ваших комментариев и лайков (жмем не жалеем).

Понравилась статья - подписывайся.

Мои курсы по информатике, математике и Python.

Также приглашаю присоединится к моему сообществу в VK и каналу YouTube.