API удаления по запросу работает как curl, но не в Node-Red

Задний план: Чего я пытаюсь добиться, так это удалить несколько значений из эластичного с помощью одного вызова API. Наше приложение использует Node-Red для создания внутренних API.

Я использую приведенную ниже команду curl для удаления нескольких идентификаторов документов, и она работает как шарм. Он удаляет документы, найденные с идентификаторами xxxxx и yyyyy.

POST /tom-access/doc/_delete_by_query
{
  "query": {
    "terms": {
      "_id": [
        "xxxxx",
        "yyyyy"
      ]
    }
  }
}

Однако, когда я пытаюсь сделать то же самое через Node-Red (используя функцию JavaScript), я получаю следующую ошибку.

{"error":{"root_cause":[{"type":"action_request_validation_exception","reason":"Validation Failed: 1: query is missing;"}],"type":"action_request_validation_exception","reason":"Validation Failed: 1: query is missing;"},"status":400}

Вот что у меня есть внутри функции Node-Red JavaScript:

if (!msg.headers) msg.headers = {};
msg.req = {
  "query": {
    "terms": {
      "id": [
        "xxxxx",
        "yyyyy"
      ]
    }
  }  
};
msg.headers = {
          "Content-Type": "application/json",
          "Authorization" : "Basic xxxxxxxxxxxxxxxxxxxxx"
          };
msg.method = "POST"

// New elastic
msg.url = "http://elastic.test.com/tom-access/doc/_delete_by_query";
return msg;

Следующий узел выполняет HTTP-вызов, используя вышеуказанный объект msg, но приводит к ошибке, упомянутой выше. Я новичок в Node-Red, JavaScript и Elastic. НЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕСЬ

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
491
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Конечная точка, вероятно, ожидает, что запрос будет в теле запросов.

Вы должны установить его под msg.payload, а не msg.req.

Другие вопросы по теме