Перейти к основному содержимому

Вызов внешнего API через Коннектор HTTP

Сценарий. Получить данные о пользователе из GitHub API и обработать результат в 1С.

Код

Функция ПолучитьИнформациюОПользователеGithub(ИмяПользователя)

URL = "https://api.github.com/users/" + ИмяПользователя;

Заголовки = Новый Структура;
Заголовки.Вставить("Accept", "application/vnd.github.v3+json");
Заголовки.Вставить("User-Agent", "1C-Enterprise");

Результат = УИ_КоннекторHTTP.GetJson(URL, , Заголовки, 30);

Если Результат.КодСостояния = 0 Тогда
ВызватьИсключение "Ошибка соединения: " + Результат.Ошибка;
КонецЕсли;

Если Результат.КодСостояния = 200 Тогда
Данные = Результат.Данные;

Информация = Новый Структура;
Информация.Вставить("Логин", Данные.login);
Информация.Вставить("Имя", Данные.name);
Информация.Вставить("Компания", Данные.company);
Информация.Вставить("Репозитории", Данные.public_repos);
Информация.Вставить("Подписчики", Данные.followers);

Возврат Информация;
Иначе
ВызватьИсключение "Ошибка HTTP " + Результат.КодСостояния + ": " + Результат.ТелоКакСтрока();
КонецЕсли;

КонецФункции

Процедура ПримерВызова()

ДанныеПользователя = ПолучитьИнформациюОПользователеGithub("cpr1c");
Сообщить("Пользователь: " + ДанныеПользователя.Логин);
Сообщить("Репозиториев: " + ДанныеПользователя.Репозитории);
Сообщить("Подписчиков: " + ДанныеПользователя.Подписчики);

КонецПроцедуры

Обработка ошибок

Результат = УИ_КоннекторHTTP.Get("https://api.example.com/data");
Если Результат.КодСостояния = 0 Тогда
Сообщить("Сервер недоступен: " + Результат.Ошибка);
ИначеЕсли Результат.КодСостояния <> 200 Тогда
Сообщить("Ошибка API: код " + Результат.КодСостояния);
Иначе
Сообщить("Успешно: " + Результат.ТелоКакСтрока());
КонецЕсли;

Связанные разделы