Найти в Дзене
Азбука тестировщика

Rest API

API - Application Programming Interface Контракт, который предоставляет программа. Набор функций. Отвечает на вопрос "Как ко мне, к моей системе, можно обратиться?" И включает в себя: API - набор функций Входные данные - magic - выходные данные REST - REpresentational State Transfer - передача состояния представления Популярный архитектурный подход для создания API. REST позволяет наилучшим образом использовать HTTP. Формат запросов и ответов определяется протоколом HTTP - Hyper Text Transfer Protocol. Когда в браузер вбивается URL, он отправляет запрос GET на указанный сервер. Сервер отвечает HTTP-ответом, который содержит данные в формате HTML - Hyper Text Markup Language. HTTP обеспечивает базовый уровень для создания веб-сервисов. Некоторые термины: Ресурс - ключевая абстракция, на которой концентрируется протокол НТТР. Это то, что наше приложение показывает наружу. URI - уникальный идентификатор ресурса. Идентифицирует ресурс для представления. POST/users - создать юзера DELET
Оглавление

API - Application Programming Interface

Контракт, который предоставляет программа. Набор функций.

Отвечает на вопрос "Как ко мне, к моей системе, можно обратиться?"

И включает в себя:

  • саму операцию, которую мы можем выполнить
  • данные, поступающие на вход
  • данные, оказывающиеся на выходе (контент или сообщение об ошибке)

API - набор функций

Входные данные - magic - выходные данные

REST - REpresentational State Transfer - передача состояния представления

Популярный архитектурный подход для создания API.

REST позволяет наилучшим образом использовать HTTP.

Формат запросов и ответов определяется протоколом HTTP - Hyper Text Transfer Protocol.

Когда в браузер вбивается URL, он отправляет запрос GET на указанный сервер. Сервер отвечает HTTP-ответом, который содержит данные в формате HTML - Hyper Text Markup Language.

HTTP обеспечивает базовый уровень для создания веб-сервисов.

Некоторые термины:

Ресурс - ключевая абстракция, на которой концентрируется протокол НТТР. Это то, что наше приложение показывает наружу.

URI - уникальный идентификатор ресурса. Идентифицирует ресурс для представления.

POST/users - создать юзера

DELETE/users/1 - удалить юзера под номером 1

GET/users - получить всех пользователей

GET/users/1 - получить 1 юзера

REST и ресурсы

С REST нужно думать о приложении с точки зрения ресурсов: определить, какие ресурсы нужно оставить для внешнего мира.

Обычно служба REST реализуется так:

Формат обмена данными: нет ограничений. JSON самый популярный, но можно, например, XML.

Транспорт - всегда НТТР. REST полностью построен на НТТР.

Определение сервиса - нет стандарта, а REST гибкий. Широко используются такие языки определения приложений, как WADL (Web Application Definition Language) и Swagger.

REST фокусируется на ресурсах и на том, насколько эффективно вы выполняете операции с ними, используя НТТР.

Компоненты НТТР

Структура запроса:

Request line - тип сообщения

Header Fields - тело сообщения, параметры передачи и прочие сведения

Body - необязат

Структура ответа:

Status line - строка состояния, включая код состояния и сообщение о причине

Header Fields - поле заголовка, ответа

Body - дополнительное тело сообщения

Методы НТТР-запроса

GET - получить подробную информацию о ресурсе

POST - создать новый ресурс

PUT - обновить существующий ресурс

DELETE - удалить ресурс

Коды статуса ответа - всегда присутствуют в ответе НТТР. Примеры:

200 - успех

404 - страница не найдена

НТТР - основной строительный блок REST-сервисов. НТТР имеет дело с ресурсами на веб-серверах. Ресурсы идентифицируются с помощью URI, а операции над ресурсами выполняются с помощью глаголов, определяемых НТТР.