При работе с API Wildberries начинающие разработчики часто сталкиваются с ошибками, которые на первый взгляд кажутся нелогичными. Например, при попытке получить остатки товаров методом /api/v2/stocks можно получить ответ "Неверная схема запроса", а при обращении к списку складов /api/v2/warehouses — "Method Not Allowed". Эти проблемы обычно связаны с неправильным пониманием принципов работы HTTP-запросов, в частности, разницы между методами GET и POST. Давайте подробно разберем, как правильно настроить такие запросы в Postman и выполнить их из 1С.
Проанализируем две основные ошибки, с которыми столкнулся автор вопроса:
/api/v2/stocks. Эта ошибка возникает, когда параметры передаются в теле запроса (Body), в то время как метод ожидает их в строке URL. Метод получения остатков, как и большинство методов получения данных, использует тип запроса GET. В GET-запросах все параметры должны быть частью URL./api/v2/warehouses. Эта ошибка однозначно говорит о том, что для обращения к указанному адресу используется неверный HTTP-метод. Например, вы пытаетесь отправить POST-запрос, когда сервер ожидает GET-запрос. Метод получения складов также является GET-запросом и не требует тела.Ключевой момент — внимательно изучать документацию API. Для Wildberries лучшим источником является их интерактивная документация Swagger, где для каждого метода указан тип (GET, POST, PUT и т.д.) и способ передачи параметров.
Postman — удобный инструмент для тестирования API, но важно правильно указывать все параметры. Рассмотрим по шагам, как настроить запрос на получение остатков.
Шаг 1: Установка основного URL и типа запроса
В основной строке выберите тип запроса GET и введите URL метода без параметров:
https://suppliers-api.wildberries.ru/api/v2/stocks
Шаг 2: Настройка параметров (Params)
Для GET-запросов параметры передаются через вкладку "Params". Postman автоматически добавит их к URL.
skip, в поле VALUE: 0 (сколько записей пропустить)take, в поле VALUE: 100 (сколько записей получить)После этих действий итоговый URL в Postman будет выглядеть так: https://suppliers-api.wildberries.ru/api/v2/stocks?skip=0&take=100
Шаг 3: Настройка авторизации (Headers)
Для доступа к API Wildberries требуется API-ключ, который передается в заголовках. Важный момент: ключ должен передаваться с префиксом Bearer.
Authorization.Bearer ВАШ_API_КЛЮЧ. Например: Bearer eyJhbGciOiJI...Теперь запрос полностью настроен, и при его отправке вы должны получить корректный ответ от сервера в формате JSON.
Интеграция с API из 1С осуществляется с помощью объектов HTTPСоединение и HTTPЗапрос. Посмотрим на рабочий пример кода, который демонстрирует правильное формирование GET-запроса для получения остатков.
Получение данных с сервера
В этом коде параметры skip и take добавляются непосредственно в строку URLЗапроса, а токен авторизации помещается в заголовок.
Процедура ПолучитьОстаткиWildberries()
Сервер = "suppliers-api.wildberries.ru";
// Вставьте ваш реальный API-ключ
Токен = "eyJhbGciOiJI...";
// Формируем заголовки HTTP-запроса
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("accept", "application/json");
// Передаем токен авторизации с обязательным префиксом Bearer
ЗаголовокHTTP.Вставить("Authorization", "Bearer " + Токен);
// Параметры skip и take являются частью строки URL
URLЗапроса = "/api/v2/stocks?skip=0&take=500";
HTTPЗапрос = Новый HTTPЗапрос(URLЗапроса, ЗаголовокHTTP);
// Для работы с https-адресами необходимо защищенное соединение
Соединение = Новый HTTPСоединение(Сервер, , , , , , Новый ЗащищенноеСоединениеOpenSSL);
Попытка
HTTPОтвет = Соединение.Получить(HTTPЗапрос);
Если HTTPОтвет.КодСостояния = 200 Тогда // Успешно получен ответ
ДанныеОбработки = HTTPОтвет.ПолучитьТелоКакСтроку();
Сообщить("Ответ от сервера успешно получен!");
// Вызываем процедуру для разбора полученных данных
РазобратьОтветJSON(ДанныеОбработки);
Иначе
// Выводим информацию об ошибке для диагностики
Сообщить("Ошибка запроса! Код состояния: " + HTTPОтвет.КодСостояния);
Сообщить("Тело ответа: " + HTTPОтвет.ПолучитьТелоКакСтроку());
КонецЕсли;
Исключение
Сообщить("Произошла ошибка при выполнении HTTP-запроса: " + ОписаниеОшибки());
КонецПопытки;
КонецПроцедуры
Обработка полученного JSON-ответа в 1С
После того как мы получили ответ в виде строки JSON, его нужно преобразовать в объекты 1С (Структура, Массив) для дальнейшей работы. Для этого используются объекты ЧтениеJSON и метод ПрочитатьJSON().
Процедура РазобратьОтветJSON(СтрокаJSON)
Если НЕ ЗначениеЗаполнено(СтрокаJSON) Тогда
Возврат;
КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
// Преобразуем JSON в объекты 1С.
// Второй параметр Истина позволяет восстанавливать типы данных (Дата, Число и т.д.)
СтруктураОтвета = ПрочитатьJSON(ЧтениеJSON, Истина);
// Получаем данные из структуры по ключам, указанным в документации API
Всего = СтруктураОтвета.Получить("total");
МассивОстатков = СтруктураОтвета.Получить("stocks");
Сообщить("Общее количество позиций с остатками: " + Всего);
// Перебираем массив с остатками
Для каждого ЭлементОстатка Из МассивОстатков Цикл
// Обращаемся к свойствам элемента через точку
АртикулПоставщика = ЭлементОстатка.article;
Остаток = ЭлементОстатка.stock;
КодТовараWB = ЭлементОстатка.chrtId;
Сообщить("Артикул: " + АртикулПоставщика + ", Остаток: " + Остаток + ", Код WB: " + КодТовараWB);
// ...здесь может быть ваша логика по обновлению остатков в 1С
КонецЦикла;
КонецПроцедуры
Таким образом, ключ к успешной работе с API Wildberries — это внимательное чтение документации и правильное формирование HTTP-запросов в соответствии с требуемым методом (GET, POST и т.д.). Для GET-запросов все параметры должны передаваться в URL, а тело запроса оставаться пустым.