При интеграции 1С с внешними REST API, такими как Tillypad, разработчики часто сталкиваются с ошибкой «URL using bad/illegal format or missing URL». Разберем, почему она возникает и как правильно настроить соединение с сервером.
Основная причина данной ошибки кроется в некорректном заполнении параметров конструктора HTTPСоединение. Часто разработчики пытаются передать порт прямо в строке адреса сервера, забывая, что объект HTTPСоединение требует раздельного указания доменного имени и порта.
Если вы указываете адрес как "service.tillypad.ru:8059", платформа воспринимает всю строку как адрес сервера, а затем при передаче порта 8059 в соответствующий параметр происходит конфликт формата URL. Платформа ожидает чистый домен в первом аргументе и числовое значение в аргументе порта.
Для исправления проблемы необходимо передавать порт отдельно. Рассмотрим правильный способ инициализации:
Выполним инициализацию объекта HTTPСоединение, разделив адрес сервера и порт:
ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
// Указываем только доменное имя в первом параметре
// Порт передаем отдельным числовым аргументом
HTTPСоединение = Новый HTTPСоединение("service.tillypad.ru", 8059, , , , , ЗащищенноеСоединение);
После правильной настройки соединения, формирование запроса к API выполняется стандартными средствами:
ЗаголовкиHTTP = Новый Соответствие;
ЗаголовкиHTTP.Вставить("Content-Type", "application/json");
ИмяМетода = "/tillypad-api/aitilip/get-menu";
HTTPЗапрос = Новый HTTPЗапрос(ИмяМетода, ЗаголовкиHTTP);
// Выполнение метода
Ответ = HTTPСоединение.ВызватьHTTPМетод("GET", HTTPЗапрос);
Работа с «голыми» HTTP-запросами в 1С требует написания большого объема рутинного кода: формирования заголовков, обработки JSON-сериализации, управления токенами авторизации и обработки статусов ответов сервера (таких как 401, 403, 500). Для интерактивной проверки и подготовки параметров запросов можно использовать обработку для тестирования REST API в 1С.
Чтобы упростить процесс, мы рекомендуем использовать специализированные коннекторы, например, Connector. Использование готовых библиотек позволяет:
Если вы только начинаете работать с API, следуйте этим правилам для избежания ошибок:
Accept: application/json или Authorization).Проанализировав ситуацию, мы выяснили, что большинство ошибок при работе с внешними сервисами связаны с особенностями передачи параметров в объект HTTPСоединение. Теперь, когда вы знаете, как правильно указывать порт, интеграция с Tillypad или любым другим API станет для вас простой и предсказуемой задачей.