У меня есть приложение в Backand, которое я создаю, и я пытаюсь использовать параметры фильтра. При вызове моего API с помощью $http
я получаю 406 error
в запросе http.
Это будет вызов API, передающий объект фильтра:
function getUserAttractions(userId) {
return $http({
method: 'GET',
url: Backand.getApiUrl() + '/1/objects/attractions',
params: {
sort: [{
"fieldName": "date",
"order": "asc"
}],
filter: [{
"fieldName": "user_id",
"operand": "contains",
"value": "1"
}]
}
});
}
Во-первых, вы должны использовать "operator" вместо "operand". Если user_id является полем объекта, то фильтр должен быть:
filter: [{"fieldName":"user_id","operator":"in","value":"1"}]
здесь вы можете найти дополнительную документацию для других типов полей http://docs.backand.com/en/latest/apidocs/apidescription/index.html#rest-api-crud-operations
Отказ от ответственности: я работаю для Backand
С HTTP-статусом 406 (не допустимо) сервер жалуется, что он не может выполнить ваш запрос, возможно, из-за вашего (отсутствующего) заголовка Accept
. См. Википедию.
Я не знаю, что должен отправить ваш сервер, поэтому я предполагаю, что он должен отправить JSON в ответ.
Попробуйте следующее:
return $http({
method: 'GET',
url: Backand.getApiUrl() + '/1/objects/attractions',
headers: {
'Accept': 'application/json, */*'
},
params: {
sort: [{"fieldName":"date","order":"asc"}],
filter: [{"fieldName":"user_id","operand":"contains","value":"1"}]
}
});
См. Страницу AngularJS для получения дополнительной информации.