【问题标题】:Parse - Restrict fields returned on included relationParse - 限制包含关系返回的字段
【发布时间】:2014-07-11 10:55:22
【问题描述】:

是否可以将 Parse 在相关字段上返回的字段限制为正在请求的对象?

Parse docs 解释了如何通过将字段名称列表传递给 keys 属性来限制 GET 请求返回的字段。

您可以通过传递keys 一个逗号分隔的列表来限制返回的字段。要检索仅包含 scoreplayerName 字段(以及特殊的内置字段,例如 objectIdcreatedAtupdatedAt)的文档:

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 对象只有 scoreplayerName 字段存在。我对 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

这将返回UsergameScore 对象中存在的所有字段。

我的问题是,我是否可以将两者结合起来对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


【解决方案1】:

我最终的解决方案是编写一个自定义云代码方法,在将字段返回给客户端之前将其删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-21
    • 2017-07-12
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    相关资源
    最近更新 更多