В чем проблема с приведенным ниже вызовом 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 в заголовках.