К статьям

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

2 мин


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

HTTP API - это реализация интерфейса взаимодействия с приложение с помощью протокола HTTP. Проще говоря это набор функций или объектов, которые могут быть вызваны извне целевого приложения из другого приложения или например браузера, чаще всего внутри локальной сети или через интернет. 

Большинство сайтов и веб-приложений в интернете используют HTTP API в своей работе. По сути для работы с большинством веб-приложений нужно два приложения - браузер и серверное приложение. Архитектура веб-приложений на деле сильно сложнее, но в данном случае такое упрощение сделано намерено. 

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

Например часто можно встретить HTTP адрес такого формата. Можно вставить его в строку браузера и увидеть результат. 

https://groxin.ru/integration/public_api/employee_posts/

В данном случае браузер обратится по этому адресу (конечной точке, endpoint) и приложение расположенное на сервере выдаст в результате какие-то данные.

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

Точно так же мы можем выполнить тот же самый запрос, но с использованием программирования. 

Например в синтаксисе 1С:

БезопасноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();

СоединениеСGroxin = Новый HTTPСоединение("groxin.ru",,,,,,БезопасноеСоединение); 
 

HTTPЗапрос = Новый HTTPЗапрос("/integration/public_api/employee_posts/");     

HTTPОтвет = СоединениеСGroxin.Получить(HTTPЗапрос); 
 

Результат = HTTPОтвет.ПолучитьТелоКакСтроку();

 Переменная Результат, при удачном выполнении кода будет равна:

[
    {
        "id": 15,
        "date_from": "2022-10-03",
        "date_to": "2023-10-03",
        "employee": {
            "id": 15,
            "created": "2022-10-03T15:15:51.070761+03:00",
            "updated": "2022-10-03T15:15:51.070766+03:00",
            "first_name": "Марк",
            "last_name": "Львов",
            "middle_name": "Андреевич",
            "email": "m.lva@academy.ru"
        },
        "post": {
            "id": 7,
            "name": "Маркетолог"
        }
    }
...
 }
]

 

Серверное приложение же в этом случае должно иметь в своей функциональности возможность публикации таких ресурсов API. В 1С такое реализуется через связку HTTP/Web - сервисов и веб-сервера Apache или IIS. В приложениях на других стеках процедура похожа, но может иметь ряд значительных отличий, по сложности и оформлению.

Так же реализация HTTP API опирается на возможности протокола HTTP, который предоставляет удобные инструменты для отправки и получения сообщений.