UPD: Добавил авторизацию OAuth2, включил блок OAuth2 авторизации в генерируемый код.
При разработке очень часто сталкиваюсь с необходимостью взаимодействия со всякого рода сервисами (rest, soap), и возникает потребность начально отладить работу сервиса, так сказать «пощупать». Для этого использую приложение SoapUI, многие используют curl, и после отладки необходимо переносить все настройки в 1С, на ее классы и методы, что занимает некоторое время. Именно так и родилась консоль http-запросов для 1С. Сразу отмечу, что она покрывает только rest сервисы, для soap она не подойдет.
Консоль может не только выполнять запросы и получать результат их выполнения, но и генерировать необходимый код на языке 1С.
Пробежимся по интерфейсу:
Настройки соединения, стоить отметить, что в поле сервер вносим только весь текст сервиса слева до домена верхнего уровня уровня (ru, com, org и т.п.)
Ссылка "Настройка прокси" открывает группу с настройками прокси (сервер прокси, логин, пароль), бывает нужно редко, обычно просто ставлю галку "Использовать прокси" и 1С сама подтягивает прокси по умолчанию.
Путь к самому rest-сервису, это все, что написано после домена верхнего уровня
Само тело запроса, может быть пустым, может содержать JSON запрос (как в примера), а может содержать XML или вообще base64 картинки/файла
Результат ответа — это тело ответа и код ответа с подробным описанием
Команды получения готово кода для конфигуратора
Пример получаемого кода
Если часть процедур/функций по работе с http вшиты в конфу, то генерится не универсальный код, а код с использованием процедур/функций конфы
Настройка заголовков запроса, это может контент тайп или ключ апи, как в примере
Параметры закидываются в/из строки сервиса
Данные формы — хитрая штука, с которыми 1С не позволяет работать как с объектом, при внесении этих параметров генерится особое тело запроса с разделителями и т.д.
Использовал их всего один раз, перекрестился и забыл.
Визуализатор/конструктор JSON-объектов
Использую на 8.3.11.2899.
По картинке к статье подумал, что это конвертер строки curl в код 1С. Вот куча кнопочек, полей и прочего не так интересна, как такой конвертер, т.к. почти все примеры в интернетах написаны с использованием curl, напримерhttps://rocket.chat/docs/developer-guides/rest-api/chat/postmessage/#example-call
Может кто-нить сделает? Звездочек огребет наверняка
(1) Согласен, сам подумываю написать импорт/экспорт Curl и SoapUI
А зачем это в 1с? пользуюсь программой Postmanhttps://www.getpostman.com/ на 100% устраивает
(3)О, на это есть несколько причин — не везде разрешают стороннее по, поведение 1С все таки иное (все тот-же прокси, конвертация кириллицы в строке запроса), запуск на серве 1С, который является другой тачкой и другим юзером AD.
Чем приближенней к реальным условиям эксплуатации, тем лучше. Да и после getpostman, cUrl, SoapUI придется все перетаскивать в код, а тут сгенерил код и огонь.
Чета в этом есть, ибо можно прикрутить сюда тестирование нагрузки и все такое прочее, что есть в сторонних решениях. В итоге описал сервис, нажал «завалить в 1000 потоков», в итоге чето там протестировал (или повесил сервак) — все опыт. Сразу ясно, тянет 1С это или тут лучше астральный программист на питоне за 10 килорублей…
(3) Как зачем удобство)
Еще бы на обычных формах похожее)
Делал нечто подобное «для себя» но у автора пофункциональней. Я правда для вывода использовал «ФорматированныйДокумент» чтобы значения и атрибуты раскрашивать по-всякому, так глазастей. Так сказать, хотелось бы увидеть и у вас) Чтобы инструмент превратился в ультимативный
Однозначно [★] в карму :3
Было бы хорошо генерировать защищеный post (исключение двойной отсылки)
А так же более менее стандартный обмен по рестапи
Не хватало работы с Digest авторизацией. Доделал.
На форму надо добавить два реквизита, а так все в коде.
Вставлять контекстно.
Показать
Попробовал вашу обработку, спасибо!
Есть небольшое неудобство: обработка не выводит заголовки и тело ответа если код ответа не равен 200. Мне кажется было бы удобнее видеть заголовки и тело ответа всегда, при любом коде ответа.
Про попытке добавления сервиса:
{ВнешняяОбработка.ОтправитьHTTPЗапрос.Форма.Форма.Форма(558)}: Индекс находится за границами массива
Рез.Сервер = Лев(МассивДанныхСсылки[1], Найти(МассивДанныхСсылки[1], «/»)-1);
при попытке заполнить по cURL
{ВнешняяОбработка.ОтправитьHTTPЗапрос.Форма.Форма.Форма(957)}: Индекс находится за границами массива
ВремТекстТела = МассивСтрокТела[1];
Подскажите пожалуйста на совместимости = 8.3.5 пойдет?
Кто может закинуть ето решения беслатно в пм ?