15.02.2021 21:21 Программирование

Rest API: что это простыми словами

Что такое REST?

REST расшифровывается как REpresentational State Transfer. Это был термин, первоначально введен Роем Филдингом (Roy Fielding), который также был одним из создателей протокола HTTP. Отличительной особенностью сервисов REST является то, что они позволяют наилучшим образом использовать протокол HTTP.

Формат сообщений

API REST могут использовать любой формат сообщений (ответов сервера), который может быть как XML так и JSON, Atom, RSS, CSV, HTML или любым другим. Несмотря на многообразие формата сообщений, большинство API REST используют JSON (нотацию объектов JavaScript) в качестве формата сообщений по умолчанию. Так как JSON обеспечивает легкий, простой и гибкий формат для обмена сообщениями (ответами) через API и по сути является де-факто стандартом для всех современных API.

Ресурсы

REST в первую очередь фокусируется на ресурсах, доступ к которым осуществляется через URL. Ресурсы, как правило, являются разными типами информации. Вы получаете доступ к ресурсам через URL (Uniform Resource Locators), так же как переход к URL-адресу в вашем браузере позволяет подключиться к информационному ресурсу в в виде веб-сайта в интернет. URL-адреса сопровождаются методом, который указывает, как вы хотите взаимодействовать с ресурсом.

Существует четыре основных метода взаимодействия с ресурсом:

  • GET — получение записи;
  • POST — создание новой записи;
  • PUT — редактирование записи;
  • DELETE — удаление записи;

URI ресурса

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

Ресурс может быть одним одиночным элементом или группой элементов (коллекцией). Например, goods (товары) - это ресурс-коллекция, а good(товар) - ресурс-элемент. Мы можем идентифицировать ресурс коллекции goods(товаров), используя URI /goods , а ресурс одного товара good с помощью следующего URI /goods/{goodId}.

Разработчики REST API должны создавать URI, которые чётко передают модель ресурсов потенциальным разработчикам клиентских приложений. Когда ресурсы названы хорошо, API является интуитивно понятным и простым в использовании. Если же это будет сделано плохо, API может оказаться трудным в использовании и понимании. Ограничение единообразного интерфейса частично устраняется комбинацией URI и HTTP-методов, и использует их в соответствии со стандартами и соглашениями.

Лучшие практики для именования ресурсов REST API

  • используйте существительные для представления ресурсов;
  • не используйте в URI завершающий слэш;
  • используйте дефисы для улучшения читаемости URI;
  • не используйте нижние подчёркивания (_);
  • используйте в URI буквы в нижнем регистре;
  • не используйте расширения файлов;

Кеширование сообщений

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

Ответы могут кэшироваться для повышения производительности. Если кэш браузера уже содержит информацию, запрашиваемую в запросе, браузер может просто вернуть информацию из кэша вместо того, чтобы снова стучаться на сервер.

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

Читать еще по теме