Это пет проект, часть личного портфолио, поэтому оценка кода, интерфейса в виде конструктивной критики приветствуется. Буду рад идеям и предложениям.
Цель: на примере внешней обработки показать свои способности в написании кода и создании удобного интерфейса, добавить ссылку на публикацию в резюме.
Постарался сделать аккуратно, с заботой.
Делаю акцент на интуитивно понятный интерфейс, поэтому покажу только скриншоты разделов:
Раздел Запрос

Предназначен для интерактивного формирования и старта выполнения запроса.
-
Адрес вводится в строке или через конструктор (кнопка с волшебной палочкой).
-
Настройки или детали – дочерние формы или флаги, в разделе виден их статус.
-
Параметры вводятся через таблицу или замещаются из адресной строки, активность подтверждается флагом.
-
Заголовки: есть 4 предустановленных заголовка, новые автоматически формируется при выборе опций, выборе значимого типа тела или вводятся вручную через таблицу, активность подтверждается флагом.
-
Тело. Значимы 4 варианта: «Текст», «HTML форма», «Мультисоставное» и «Файл».
-
Тело «Текст» имеет еще 4 варианта: «plain», «HTML», «XML» и «JSON». Последние 3 имеют ссылку для открытия в браузере онлайн-редактора.
-
Выбор значимого типа тела формирует/обновляет активный заголовок «Content-Type», который определяет формирование данных для тела запроса.
-
Прокси для двух протоколов: http и https.
-
Авторизация: доступны «Basic» и «Bearer».
-
Опция «тело упаковывать» формирует активный заголовок «Content-Encoding: gzip», который позволит упаковать двоичные данные тела в gzip.
-
Опция «использовать Cookie» при перенаправлениях (если они позволены лимитом) будет обновлять заголовок «Cookie» в соответствии с очередным полученным заголовком ответа «Set-Cookie». Выделил в опцию сознательно, показалось, что при веб-серфинге с выключенной опцией результат выглядит лучше, может быть, что-то не учитываю).
-
Выполнить запрос -> кнопка «Выполнить»
-
Выполнить запрос и сохранить в истории -> кнопка с синей стрелкой.
После выполнения запроса открывается раздел Ответ
Раздел Ответ

Предназначен для просмотра результата выполнения запроса:
-
Доступно 2 режима: текст и просмотр в виде HTML-страницы.
-
Справа: статистика, список сделанных перенаправлений (если были) и результирующий набор заголовков ответа.
Раздел История

Предназначен для показа истории запросов, добавления комментариев и восстановлению консоли параметрами из ранее выполненного запроса. Содержит стандартные команды по сохранению и импорту из файла.
На скриншоте представлена история изучения сервиса: HTTP-QUEST: интерактивный обучающий курс для работы с HTTP-запросами
Раздел Инструменты

Предназначен для обработки текста ответа или подготовки тела запроса типа «Текст»
-
Получение текста ответа, при включенном флажке
-
Преобразование Текста в Объект через дерево значений
-
Обработка значения Текста или свойства Объекта
-
Манипуляция с хранилищами и возврат Текста в тело запроса
Например: получили строку JSON, в одном из свойств которого закодирован с помощью Base64 файл, необходимо раскодировать и сохранить в файл на диске
-
преобразовать Текст в Объект (кнопка вправо)
-
в Объекте выделить нужное свойство и отправить в Область обработки (кнопка вниз под деревом значений)
-
кнопка «Base64 в Файл» даст команду раскодировать и сохранить двоичные данные в указанный файл
Старался писать лаконично, выделяя контроллер, разделяя логику и представление, держа методы на одном уровне абстракции.
Разработка велась на платформе 8.3.27, в файловой базе. Мобильный и Веб-клиенты не поддерживаются.
Файлы, указанные как результат или как тело (или в его составе), должны быть доступны на сервере.
Минимальная версия платформы 8.3.20, использую менеджер обработки строки XML.
Благодарности и источники идей:
HTTP-QUEST: интерактивный обучающий курс для работы с HTTP-запросами, мой первый опыт в 1С с http-запросами. Представление ответа в виде HTML-страницы (раздел Ответ) и необходимость достать из JSON и сохранить на диск/ вложить в JSON и отправить закодированный в base64 файл (раздел Инструменты) нашли отражение в данной консоли.
Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 - было очень полезно ознакомиться с приемами работы с http-сообщениями в 1С. Упаковка тела запроса и распаковка тела ответа целиком включена в код обработки.
Открытый пакет интеграций для популярных API: Telegram, VK, Viber, Bitrix24 и многих других – идеальный пример для подражания стилю написания кода, системе наименования и универсальности. В коде консоли можно найти много пересечений.
HTTP-клиент – является прообразом интерфейса для данной консоли, заимствованы состав и формат статистики выполненного запроса.
Консоль HTTP-запросов с генерацией кода – понравилась идея преобразования текста ответа в объект через дерево значений и обратная загрузка в тело запроса – использовано в разделе Инструменты.
БСП – подсмотрел идею поддержки перенаправлений, заимствовал формат представления ошибок.
Вступайте в нашу телеграмм-группу Инфостарт