具有包含/限制/计数的Angular的Parse.com REST API查询格式

时间:2014-10-22 00:32:58

标签: angularjs parse-platform

我尝试了几种不同的方法从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'
                    }
                  })

谢谢!

1 个答案:

答案 0 :(得分:1)

你正在“过度思考”这个问题,因为很多编码问题都很常见,而且已经解决了。因此,您不需要使用$http进行字符串格式化/编码 - 只需使用对象。

此外,在检查parse.com API后,limitcountincludewhere的兄弟姐妹 - 而不是孩子。

所以,你需要做的就是:

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"
              }
   });