Программный интерфейс приложения

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

Аналитики проектируют API и определяют:

  • протокол общения (HTTP, HTTPS)
  • формат запроса и ответа (JSON, XML, Protobuf)
  • наличие аутентификации и авторизации

API определяет правила обмена информацией между программами, если эти правила не соблюдаются, обмен данными может быть нарушен.

two-cat-astronauts-signing-an-agreement

Пример API из реальной жизни

Когда необходимо сориентироваться на местности, мы пользуемся приложением «Карты» (Google Maps, Yandex Maps). «Карты» предоставляют географическую информацию не только пользователям, но и другим приложениям при помощи API.

Приложение «Навигатор» выступит в роли клиента, а приложение «Карты» — сервера.

  1. «Навигатор» передает запрос с параметрами начальной и конечной точки маршрута
  2. Получает ответ от приложения «Карты»
  3. Дополняет карту навигационной информацией (предлагает оптимальный маршрут, предупреждает о загруженности дорог, отображает ближайшие заправки и т.д.)
  4. Карта отображается пользователю

plain-map

Карты

navigator-map

Навигатор


Задача

Выступите в роли клиента. Передайте серверу координаты для сохранения стартовой точки.

Заполните форму «Форма для отправки HTTP-запроса» и отправьте HTTP-запрос на сервер.


Форма для отправки HTTP-запроса

Договорённость по формату запроса:

  • URL адрес запрашиваемого ресурса: /startpoint (в данном случае используем только окончание адреса, т.н. эндпоинт)
  • HTTP метод, соответствующий отправке новых данных на сервер (см. HTTP методы)
  • Заголовок с типом контента application/json (указывает на то, что данные будут переданы в JSON формате)
  • Тело запроса должно содержать параметры latitude и longitude в JSON формате
Ключ Описание Тип Обязательность * Ограничения
latitude широта число + от -90 до 90
longitude долгота число + от -180 до 180

* Обязательность говорит об обязательности указания поля, может принимать значения:

  • При обязательности +, Y, Yes, Да, 1
  • При необязательности -, N, No, Нет, 0..1