AmitabhaGhosh123 Ответов: 0

В чем проблема с приведенным ниже вызовом rest api?


Я пытаюсь выполнить операцию CRUD для rest api.

В настоящее время я выполняю операцию обновления формы при нажатии кнопки.

Проблема :

В Почтальоне

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

В коде

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

{"статус":"ошибка","ошибка":"пожалуйста, укажите идентификатор задачи"}

Что я уже пробовал:

Мой вызов api :

URL запроса : https://devza.com/tests/tasks/update
Заголовок запроса :

полномочия: devza.com
:метод: сообщение
:путь: /тесты/задачи/обновление
:схема: https
принять: application/json
accept-кодировка: gzip, deflate, br
accept-language: en-US,en;q=0.9
authtoken: MMPIUq9bM8zRUFDWzc7XMMGt8jix38q9
содержание-длина: 104
тип контента: приложение/JSON
происхождение: http://localhost:4200
реферер: http://localhost:4200/
sec-ch-ua: "Chromium";v="86", "\"Not\\A;Brand";v="99", "Google Chrome";v="86"
sec-ch-ua-mobile: ?0
sec-fetch-dest: пусто
sec-fetch-mode: cors
sec-fetch-site: кросс-сайт
агент пользователя: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/86.0.4240.111 Safari/537.36

Запрос Полезной Нагрузки :

[{"идентификатор_задачи":"837","сообщение":"рассказы","приоритет":"2","assigned_to":"1","due_date":"2020-11-08 12:12:12"}]

Ответ : {"статус":"ошибка","ошибка":"пожалуйста, укажите идентификатор задачи"}

Согласно ответу , он запрашивает у меня идентификатор задачи , но он уже указан в разделе полезной нагрузки.

Richard MacCutchan

Вам нужно поговорить с поставщиком API, чтобы понять, почему он не принимает значение taskid.

AmitabhaGhosh123

Привет Ричард,

Тот же запрос отлично работает в postman, но не работает при вызове api из кода.

Ниже приведена документация для API обновления.

Задачи после обновления
https://devza.com/tests/tasks/update
ЗАГОЛОВКИ

AuthToken {YOURTOKENHERE}

Данные о форме тела

сообщение ХХХ что-то dasasa
due_date 2020-09-19 12:12:12
необязательный

приоритет 2
опционально (1: нормальный, 2: средний, 3: высокий)

assigned_to 1
необязательный

taskid 1

Richard MacCutchan

Но это не объясняет формат, в котором данные должны быть отправлены. Вам все еще нужно выяснить, почему taskid, который вы отправляете, не распознается API. Это не то, о чем здесь кто-то может догадаться.

F-ES Sitecore

Какова сигнатура метода api, который вы вызываете? Вы передаете массив данных, а не один элемент, так что, возможно, не зная, как определяется метод, невозможно сказать, в чем может быть проблема.

AmitabhaGhosh123

Ниже приведен метод для api :

updateTask(данные) {
вернуть это.протоколу HTTP.после(этого.apiBaseUrl + '/' обновить', json-файле.преобразовать в строки(сведения),{
заголовки: новые HttpHeaders({
"authtoken":'MMPIUq9bM8zRUFDWzc7XMMGt8jix38q9',
"content-type": 'application/json',
"принять": 'application/json'
})
})
}

Способ вызова api :

updateTask() {
это.updateObject['идентификатор_задачи'] = это.filteredObject['идентификатор'];
это.updateObject['сообщение'] = это.filteredObject['сообщение'];
this.updateObject['due_date'] = this.filteredObject['due_date'];
это.updateObject['приоритет'] = это.filteredObject['приоритет'];
this.updateObject['assigned_to'] = this.filteredObject['assigned_to'];
this.spinner.show('spinner1');
ВАР сведения = [];
data.push(this.updateObject);
это.когда проект taskservice.updateTask(сведения).подписаться(РЭС=&ГТ;{
консоли.журнал(ВИЭ);
$('#content').modal("скрыть");
this.spinner.hide('spinner1');
этот.fetchAllTasks();
},
(ошибка)=>{
this.spinner.hide('spinner1');
});
}


Api принимает formdata в качестве входных данных в разделе body и apikey в заголовках.

0 Ответов