Appengine ID / Name vs WebSafeKey

时间:2015-08-04 13:46:12

标签: java google-app-engine google-cloud-datastore

在java中编写端点时,为了按键查找项目,我应该使用密钥的 Id 还是 webSafeString ?在什么情况下这很重要?

1 个答案:

答案 0 :(得分:3)

取决于你。

  • 这些实体有父母吗?然后,您可能希望使用urlsafe表示形式,因为单个字符串将包含实体的完整路径。如果您使用了ID,那么您将需要手动将所有父项的ID包含在根目录中。

  • 没有父母& ID是数字/字母数字?然后只使用ID,因为它们看起来更干净(再次,这不是一个规则,完全取决于你)。

  • 没有父母,但ID中有特殊字符?使用urlsafe表示,因为您可能遇到问题而无法使用某些特殊字符而不在HTTP中对其进行编码。

  • 注意#1:urlsafe表示编码的实体名称可以轻松解码,这不太可能是隐私问题,但您仍应注意它。实际数据(ID)也是简单编码的,并且可以很容易地解码,因此当您使用电子邮件等个人信息作为ID时要小心,urlsafe对它们不安全。

  • 注意#2:如果您决定将来更改数据结构(父母< - >孩子),您可能会遇到向用户发布的一些urlsafe数据谁不知道你可能做过的改变。