#node.js #xml #api #soap
Вопрос:
Я пытаюсь сделать запрос в Quest API для создания заказа на тестирование сотрудников на наркотики. Мой запрос приведен ниже
const questOption = { username, password, orderXml }; soap.createClientAsync(baseUrl).then( (client) =gt; { let createOrderResult = client.CreateOrder(questOption) console.log("createOrderResult:", createOrderResult) return createOrderResult; }) .then( (result) =gt; { console.log("result:", result) const parsedResult = orderService.parseResponse(createOrderResult, "create"); })
Консоль.журнал createOrderResult и результат возвращаются неопределенными, что создает впечатление, что консоль.журналы запускаются до завершения запроса API. Параметры указаны правильно, а формат xml в точности соответствует требованиям документов Quest API. Ниже приведен скриншот того, что требуется API quest в запросе API, а также пример ответа API при возникновении ошибки
Кроме того, я должен упомянуть, что, когда я console.log(клиент), я получаю массивный объект. Рад предоставить любую другую информацию! Ценю любую помощь в этом
Комментарии:
1. Что
client.CreateOrder(questOption)
возвращается?2. также не определено. Я только что обновил пост, чтобы отразить и это тоже!
3. Я думаю, что есть ваш ответ. Асинхронный код не запускается до
createClientAsync
завершения. Это простоclient.CreateOrder()
возвращаетundefined. Are you certain you are passing the parameters correctly? The signature says
CreateOrder(строковое имя пользователя, строковый пароль, строковый orderXml), который выглядит как три разных параметра. Но вы передаете один объект со всеми тремя из них. Я не знаю, точно это или нет.4. Я пытался связаться с клиентом. Создайте заказ(имя пользователя, пароль, orderXml) и я получаю те же результаты. Может быть, проблема с XML, как вы сказали? Хотя я бы подумал, что API вернет ошибку и не оставит результат неопределенным
5. Определенно кажется, что клиент SOAP работает не так, как ожидалось. Но я не знаю, почему. В документации четко указано, что он должен возвращать строку, но вы получаете
undefined
, и это даже не ошибка. Возможно, проблема связана с используемым вами API.