Преобразовать вызов API почтальона в вызов Node.js - PullRequest
0 голосов
/ 20 февраля 2019

У меня возникают некоторые проблемы, когда я пытаюсь отправить запрос на публикацию в API, созданный с помощью Swagger 2.0 (не мной).

Я импортировал коллекцию в почтальон, и когда я выполняю публикациюПросьба это работает отлично.Однако в Node.js он выдает ошибку 400 с библиотекой сваггера и 500 с аксиосами.

Вот схема, которую коллекция предоставляет в почтальоне:

{
  "workflowFunctionID": 1,
  "workflowActionParameters": [
    {
      "name": "Description",
      "value": "Probando y wea2",
      "workflowFunctionParameterId": 2
    },
    {
        "name": "Price",
        "value": "25000",
        "workflowFunctionParameterId": 3
    }
  ]
}

Как я уже говорил, это работаетв совершенстве.И это текущий код, который использует Node.js:

main = async() => {
  try {
    const token = await acquireTokenWithClientCredentials(RESOURCE, CLIENT_APP_Id, CLIENT_SECRET, AUTHORITY);

    const request = {
      url: `${WORKBENCH_API_URL}/api/v1/contracts?workflowId=1&contractCodeId=1&connectionId=1`,
      method: "POST",
      headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token.access_token}` },
      body: {
        workflowActionInput: {
          workflowFunctionID: 1,
          workflowActionParameters: [{
              "name": "description",
              "value": "cualkier wea"
            },
            {
              "name": "price",
              "value": "20000000"
            }
          ]
        }
      }
    }

    let res = await Swagger.http(request);

    console.log(res);
  }
  catch (err) {
    console.error(err);
  }
}

main();

Как мне передать данные тела / формы в запрос post, или, возможно, использовать другой пакет или код?Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 20 февраля 2019

Когда у вас работает API в почтальоне, просто посмотрите на эту кнопку с именем «code», которую я пометил черным

  • нажмите на эту кнопку
  • выберите язык в качестве node.js

Он покажет вам код в node.js для этого API, просто скопируйте этот код и вставьте, где это необходимо.Вот я прилагаю картинку, пожалуйста, смотрите это enter image description here

...