Платформа 1С (по состоянию на время версии 8.3.21) предоставляет достаточно низкоуровневый кодовый функционал настройки HTTP-запроса. Такие вопросы, как описание конкретного типа авторизации, формирование тела запроса, переадресация, работа с Cookie, повторное отложенное выполнение и т.д., оставались на откуп программисту.
Цель создания подсистемы – предоставить программисту библиотеку с готовым функционалом, решающим прикладные задачи отправки HTTP-запросов исключительно средствами платформы 1С.
Подсистема состоит из:
- библиотеки – набора процедур и функций (API);
- Клиента – обработки для интерактивных настройки и выполнения HTTP-запросов.
Библиотека содержит расширенный набор прикладных процедур и функций для настройки и выполнения HTTP-запроса. Говорящие названия функций и процедур, обширная документация, дизайн API в целом позволяют писать лаконичный, человекопонятный и эффективный код классическим подходом и в виде текучего (fluent) интерфейса.
Весь функционал библиотеки реализован исключительно средствами платформы 1С.
Названия методов, типы контента, коды ответа сервера, наименования заголовков и многое другое оформлены в виде констант (функции модуля повторного использования).
Простота API библиотеки скрывает эффективную подготовку тела запроса различных видов: текст, файл, HTML-форма, компоновка формы multipart.
Библиотека берёт на себя подготовку запроса и работу с ответом для обеспечения успешной аутентификации различными способами.
Реализованы retry и backoff через механизм фоновых заданий. Библиотека анализирует ответ и может автоматически выполнять retry.
Библиотека позволяет автоматизировать выполнение цепочки запросов перенаправлений.
Библиотека почти полноценно работает в коде для мобильного приложения. Имеется версия Клиента для мобильной платформы.
Автоматизированы чтение заголовка Set-Cookie
, хранение и отправка Cookie. Хранение Cookie по хостам реализовано в виде in-memory базе данных, которая находится в дополнительных параметрах запроса.
Клиент (обработка) даёт возможность получить код 1С по интерактивно настроенному запросу. Также есть функционал импорта из Postman
и экспорт/импорт команды curl
. Пример использования:
- Импорт запроса из Postman или curl
- Генерация кода 1С
Подробное описание функционала библиотеки.