Как сделать запросы API на основе XML с помощью Express Node.js? - PullRequest
0 голосов
/ 05 октября 2019

Я хотел бы отправить запрос API на https://api -test.onlineszamla.nav.gov.hu ​​/ invoiceService / queryTaxpayer , и они ожидают XML, как пример, представленный ниже. Каков соответствующий синтаксис в Node.js, который обрабатывает этот запрос? К сожалению, я не смог выяснить это из документации API.

РЕДАКТИРОВАТЬ: часть содержимого XML будет из пользовательских данных, а часть из полей ввода.

<?xml version="1.0" encoding="UTF-8"?><QueryTaxpayerRequest xmlns="http://schemas.nav.gov.hu/OSA/1.0/api">
    <header>
        <requestId></requestId>
        <timestamp></timestamp>
        <requestVersion></requestVersion>
        <headerVersion></headerVersion>
    </header>
    <user>
        <login></login>
        <passwordHash></passwordHash>
        <taxNumber></taxNumber>
        <requestSignature></requestSignature>
    </user>
    <software>
        <softwareId></softwareId>
    </software>
    <taxNumber></taxNumber>
</QueryTaxpayerRequest>

Ответы [ 2 ]

0 голосов
/ 06 октября 2019

Вы можете использовать такую ​​библиотеку, как xmlbuilder , чтобы упростить создание строки XML.

var builder = require('xmlbuilder');

var obj = {
  root: {
    xmlbuilder: {
      repo: {
        '@type': 'git', // attributes start with @
        '#text': 'git://github.com/oozcitak/xmlbuilder-js.git' // text node
      }
    }
  }
};

var xml = builder.create(obj).end({ pretty: true});
console.log(xml);

И затем вы можете использовать любую библиотеку для выполнения запроса ииспользуйте приведенную выше строку XML в теле.

0 голосов
/ 05 октября 2019

Используйте синтаксический анализатор XML, а затем установите тип ответа как XML, как показано ниже:

var xml = require('xml');

response.set('Content-Type', 'text/xml');

response.send(xml(YOUR_XML_OBJECT));

в приведенном выше примере я использовал XML в качестве синтаксического анализатора, вы должны иметь возможность использовать любойдругие доступные пакеты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...