我尝试了几种不同的方法从REST API中获取过滤后的数据,但无法找出正确的查询格式。这项工作对我来说:
var query = encodeURIComponent('where=' + '{"' + type + '":"' + subtype + '"}');
$http.get('https://api.parse.com/1/classes/events?' + query,
{headers:{
'X-Parse-Application-Id': PARSE_CREDENTIALS.APP_ID,
'X-Parse-REST-API-Key':PARSE_CREDENTIALS.REST_API_KEY,
'Content-Type' : 'application/json'
}
})
},
但是当试图包含其他参数如'include','limit'和'count'时,我尝试了很多迭代,但无济于事。大多数queires返回一个错误的响应,但是这个查询返回一个空数组(这不是我想要的,但至少它返回了一些东西):
var query = encodeURIComponent('where=' + '{"' + type + '":"' + subtype + '", "limit":2}')
我也尝试过使用带有Angular的$ http对象的params对象,但即使使用与上述查询相同的格式,它也会返回错误的响应。任何人都可以给我正确的格式吗?例如,这似乎不起作用:
$http.get('https://api.parse.com/1/classes/events',
{params: {"where" : encodeURIComponent('{"senses":"touch"}') }},
{headers:{
'X-Parse-Application-Id': PARSE_CREDENTIALS.APP_ID,
'X-Parse-REST-API-Key':PARSE_CREDENTIALS.REST_API_KEY,
'Content-Type' : 'application/json'
}
})
谢谢!
答案 0 :(得分:1)
你正在“过度思考”这个问题,因为很多编码问题都很常见,而且已经解决了。因此,您不需要使用$http
进行字符串格式化/编码 - 只需使用对象。
此外,在检查parse.com API后,limit
,count
和include
是where
的兄弟姐妹 - 而不是孩子。
所以,你需要做的就是:
var whereQuery = {type: subtype};
$http.get('https://api.parse.com/1/classes/events',
{
headers: {
'X-Parse-Application-Id': PARSE_CREDENTIALS.APP_ID,
'X-Parse-REST-API-Key': PARSE_CREDENTIALS.REST_API_KEY,
'Content-Type' : 'application/json'
},
params: {
where: whereQuery,
limit: 2,
// count: 1
// include: "something"
}
});