【发布时间】:2014-07-11 10:55:22
【问题描述】:
是否可以将 Parse 在相关字段上返回的字段限制为正在请求的对象?
Parse docs 解释了如何通过将字段名称列表传递给 keys 属性来限制 GET 请求返回的字段。
您可以通过传递
keys一个逗号分隔的列表来限制返回的字段。要检索仅包含score和playerName字段(以及特殊的内置字段,例如objectId、createdAt和updatedAt)的文档:
curl -X GET \
-H "X-Parse-Application-Id: [APP_KEY]" \
-H "X-Parse-REST-API-Key: [REST_KEY]" \
-G \
--data-urlencode 'keys=score,playerName' \
https://api.parse.com/1/classes/GameScore
所以这将返回给我的 GameScore 对象只有 score 和 playerName 字段存在。我对 GameScore 对象上的其他字段不感兴趣。
Parse 还允许您通过将关系名称传递给includes 属性来将数据包含在关系对象中。所以假设我有一个User,它通过一个名为gameScore 的字段与GameScore 类相关。
curl -X GET \
-H "X-Parse-Application-Id: [APP_KEY]" \
-H "X-Parse-REST-API-Key: [REST_KEY]" \
-G \
--data-urlencode 'include=gameScore' \
https://api.parse.com/1/classes/User
这将返回User 和gameScore 对象中存在的所有字段。
我的问题是,我是否可以将两者结合起来对User 发出 GET 请求,包括 gameScore 关系但限制包含的 gameScore 对象上返回的字段,因此它只返回 @987654344 @字段?
我希望这样的事情能够奏效:
curl -X GET \
-H "X-Parse-Application-Id: [APP_KEY]" \
-H "X-Parse-REST-API-Key: [REST_KEY]" \
-G \
--data-urlencode 'keys=gameScore.score' \
--data-urlencode 'include=gameScore' \
https://api.parse.com/1/classes/User
很遗憾,我收到一条错误消息
{"code":105,"error":"无效字段名:gameScore.score"}
据此我推测不可能限制包含关系的字段?
【问题讨论】:
-
尝试使用
include=gameScore.score keys=gameScore或不使用keys字段。 -
我不认为这是受支持的。我很好奇为什么这个功能对你很重要。您想节省网络带宽吗?
-
一个原因是对服务器的 API 调用,我猜间接带宽。我可以解决这个问题。我只是想在这样做之前先看看我是否遗漏了什么。
-
@knshn 不幸的是,这不起作用,因为包含需要一种关系类型。错误:
{"code":102,"error":"field score cannot be included because it is not a pointer to another object"} -
啊,好吧,我认为它会工作。感谢您尝试并告诉我。
标签: rest curl parse-platform