вторник, 1 февраля 2022 г.

REST

Здесь https://habr.com/ru/post/590679/ 

Сначала простым языком объясняются такие термины как: формат представления данных, протокол (протокол передачи данных), транспорт (сетевой протокол). 

Далее идёт речь про REST, подробно, с разбором принципов.

Понятно одно - есть противоречия в понимании этого термина.

Терминология

Формат представления данных

Давайте запомним из этой части статьи что XML и JSON — это форматы представления данных.

Протокол передачи данных

Протокол передачи данных — это набор соглашений, которые определяют обмен данными между различными программами. Эти соглашения задают единообразный способ передачи сообщений и обработки ошибок.

Транспорт

Транспорт — это подмножество сетевых протоколов, с помощью которых мы можем передавать данные по сети.

Такими протоколами могут быть, например: HTTP, FTP и др.

Протокол HTTP

HyperText Transfer Protocol (HTTP) — это протокол передачи данных. Изначально для передачи данных в виде гипертекстовых документов в формате HTML, сегодня — для передачи произвольных данных.

REST

Representational State Transfer — это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Архитектурный стиль – это набор согласованных ограничений и принципов проектирования, позволяющий добиться определённых свойств системы.

Назначение REST в том, чтобы придать проектируемой системе такие свойства как:

  • Производительность,
  • Масштабируемость,
  • Гибкость к изменениям,
  • Отказоустойчивость,
  • Простота поддержки.

Принципы REST

6 принципов REST:

  • Клиент-серверная архитектура
  • Stateless
  • Кэширование
  • Единообразие интерфейса
  • Layered system
  • Code on demand

Далее эти шесть принципов разобраны подробнее.

Источник: https://mcs.mail.ru/blog/vvedenie-v-rest-api

Что такое REST API

Representational State Transfer (REST) в переводе — это передача состояния представления. Технология позволяет получать и модифицировать данные и состояния удаленных приложений, передавая HTTP-вызовы через интернет или любую другую сеть.

Если проще, то REST API — это когда серверное приложение дает доступ к своим данным клиентскому приложению по определенному URL.

Базовые понятия Rest API — HTTP-протокол и API

Application Programming Interface (API), или программный интерфейс приложения — это набор инструментов, который позволяет одним программам работать с другими. API предусматривает, что программы могут работать в том числе и на разных компьютерах. В этом случае требуется организовать интерфейс API так, чтобы ПО могло запрашивать функции друг друга через сеть.

REST API позволяет использовать для общения между программами протокол HTTP (зашифрованная версия — HTTPS), с помощью которого мы получаем и отправляем большую часть информации в интернете.

Построение API-системы с использованием ресурсов, HTTP и различных запросов к ним как раз и будет Representational State Transfer (REST API) — передачей состояния представления.

Методы HTTP: основа работы REST API

Чтобы ресурс, который вы запрашиваете, выполнял нужные действия, используют разные способы обращения к нему. 

В API-системе четыре классических метода:

  • GET — метод чтения информации. GET-запросы всегда только возвращают данные с сервера, и никогда их не меняют и не удаляют. В бухгалтерском приложении GET /invoices вы открываете список всех счетов.
  • POST — создание новых записей. В нашем приложении POST /invoices используется, когда вы создаете новый счет на оплату.
  • PUT — редактирование записей. Например, PUT /invoices вы исправляете номер счета, сумму или корректируете реквизиты.
  • DELETE — удаление записей. В нашем приложении DELETE /invoices удаляет старые счета, которые контрагенты уже оплатили.

Для чего используют REST API

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

Чаще всего REST API применяют:

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

Источник https://systems.education/rest-api-postman

REST API — это программный интерфейс, построенный по принципам архитектуры REST.

REST — способ организации программной системы, построенный на принципах.

  1. Client-Server. Система должна быть разделена на клиентов и серверов.
  2. Stateless. Сервер не должен хранить какой-либо информации о клиентах. В запросе должна храниться вся необходимая информация для обработки запроса и, если необходимо, идентификации клиента.
  3. Cache․ Клиенты и промежуточные узлы могут кешировать ответы сервера.
  4. Uniform Interface. Единый интерфейс определяет взаимодействие между клиентами и серверами.
  5. Layered System. Допускается разделить систему на иерархию слоев, но с условием, что каждый компонент может видеть компоненты только непосредственно следующего слоя.
  6. Code-On-Demand (опционально). Возможно выполнение кода на стороне клиента.

Трёхуровневая архитектура

Трёхуровневая архитектура предполагает, что инициатором запроса является так называемый «клиент», то есть клиентское приложение. Уровни архитектуры мы далее будем называть «слои» — это общепринятый в ИТ-среде термин.

Итак, выделяют следующие слои трёхуровневой архитектуры:
  • Слой клиента (интерфейс пользователя) — необходим для того, чтобы разные клиенты могли единообразно обращаться к бизнес-логике, реализованной на сервере.
  • Слой логики (сервер) — обеспечивает выполнение бизнес-логики.
  • Слой данных (база данных) — обеспечивает хранение данных. Сервер получает данные и использует их для осуществления бизнес-логики.


Application programming interface (API)

Каждый слой архитектуры взаимодействует только с соседним слоем, то есть интерфейс пользователя не обращается к базе данных напрямую — только через сервер приложений.

Для этого рассмотрим следующую схему:

API (Application programming interface) — это описание способов, с помощью которых одна компьютерная программа может взаимодействовать с другой.

API отвечает на вопрос «как можно обратиться к системе?» и включает в себя:
Операцию, которую мы можем выполнить;
Данные, которые поступают на вход;
Данные на выходе (данные или сообщение об ошибке).

REST API — это программный интерфейс, построенный по принципам архитектуры REST.

Вызов операций REST API

Клиентские приложения обращаются к REST API по протоколу HTTP.

HTTP — широко распространённый протокол передачи данных, изначально предназначенный для передачи документов. Когда мы говорим «протокол», то имеем ввиду четко специфицированные правила передачи информации, которые клиент и сервер должны соблюдать и выполнять.

Рассмотрим структуру HTTP-запроса, поскольку для обращения к стороннему приложению мы должны сделать как раз это — отправить http-request. Любой HTTP-запрос состоит из трёх частей:
  1. Стартовая строка. Стартовая строка содержит метод, адрес (URI), а также используемую версию протокола HTTP
  2. Заголовки (Headers). Заголовки (Headers) прописаны в спецификации HTTP и состоят из имени и значения.
  3. Тело сообщения. Если сообщение подразумевает, что мы собираемся передавать какие-то данные, то после заголовка идет тело сообщения
Стартовая строка. Методы HTTP
Для заполнения стартовой строки HTTP-запроса необходимо указать метод HTTP. Говоря по-простому, метод HTTP — это команда HTTP, указывающая на основную операцию над ресурсом, с которой начинается первая строка клиентского запроса.

Не все методы HTTP реально используются на практике. Давайте посмотрим наиболее часто используемые:
МетодОписание
GETИспользуется для запроса содержимого указанного ресурса
HEADПрименяется для извлечения метаданных, проверки наличия ресурса
PUTПрименяется для загрузки содержимого запроса на указанный в запросе URI. Используется, когда надо не создать ресурс, а поменять его значения (атрибуты)
DELETEУдаляет указанный ресурс
POSTПрименяется для передачи пользовательских данных заданному ресурсу. Например, как раз для передачи упомянутой нами выше картинки.
PATCHПозволяет только создание или полную замену документа

Тело сообщения. Формат JSON
В этой статье мы рассмотрим пример REST API, который использует формат данных JSON. Такой формат используется как для описания тела запроса, так и для ответа сервера.

JSON (JavaScript Object Notation) — текстовый формат представления данных в нотации объекта JavaScript.
В качестве значений в JSON могут быть использованы:
  • запись — это неупорядоченное множество пар ключ: значение, заключённое в «{ }».
  • массив — это упорядоченное множество значений. Массив заключается в «[ ]».
  • число (целое или вещественное).
  • литералы true («истина»), false («ложь») и null.
  • строка — это упорядоченное множество символов юникода, заключённое в двойные кавычки.
Далее разбирается работа с Postman

Комментариев нет:

Отправить комментарий