Closed VladimirIvanin closed 7 years ago
У них json отдаёт не весь api, а xml весь. Плюс попадаются моменты где xml ответ полный, а в json ответе многого нет. А передавать им что-либо бесполезно, багу где во время триала можно удалить приложение и заново поставить, начав тем самым триал сначала и нифига не платя за приложение, уже много лет. Я об этом говорил и Артему и потом Антону, бесполезно. И там ещё куча всякой фигни, с insales я больше не работаю. Объект покажите который у вас в opt.data
А какие конкретно запросы возвращали не полную информацию. Только что спрашивал у разработки, они точно обратят внимание на косяки с неполными ответами. Если в доке по json чего то нет, то можно ориентироваться на xml, wiki.insales
Сходу не назову, но было такого много. Это же просто тестируется, делается два запроса к xml и json. Из xml делается json и проверяются два json на разницу между ними.
А насчёт загрузки того же файла, оно точно работает ибо здесь https://github.com/pomeo/insalesprice/blob/master/jobs.js#L1332 этой проверке уже куча времени. И приложение как работало, так и работает используя эту библиотеку.
Тогда если оставлять xml надо править передачу опций в restler.
Почему то следующий код создаёт пустой объект.
const opt = Object.create(options);
И если из npm поставить пакет insales
то какой то косяк с xml2js.Builder()
Внутри функции post xml2js - undefined
Вот только что взял из мастера
insales.uploadFile({
token: 'бла-бла',
url: 'бла-бла.myinsales.ru',
files: {
file: {
src: 'https://бла-бла'
}
}
}).then(output => {
console.info(output.data);
}).catch(err => {
console.error(err.msg.errors.error);
});
и получил 'Название уже существует'
А в npm улетел пакет с другой точкой входа, перезалил теперь работает
Да всё работает, спасибо!
Почему в API испоьзуются xml запросы вместо json? Есть какие то подводные камни в использовании json? Я мог бы передать разработчикам InSales, информацию о багах с такими запросами. Например при загрузке через node.js api файла или ассета с одинаковым именем от сервера возвращается ошибка
не заполнены обязательные поля
, вместо уведомления о том что такой файл уже существует. Документация InSales API JSONПробовал в рестлере использовать postJson, запросы проходили, вот в таком виде:
Правда почему то когда передавал опции появляется ошибка
не заполнены обязательные поля
. P.s в headers менял Content-Type на application/json.Вот так сделал, возвращает правильную ошибку в случае задвоения, и естественно заливает файл если его нет: