【发布时间】:2015-08-04 13:46:11
【问题描述】:
在 java 中编写端点时,为了通过键查找项目,我应该使用键的 Id 还是 webSafeString?这在什么情况下很重要?
【问题讨论】:
标签: java google-app-engine google-cloud-datastore
在 java 中编写端点时,为了通过键查找项目,我应该使用键的 Id 还是 webSafeString?这在什么情况下很重要?
【问题讨论】:
标签: java google-app-engine google-cloud-datastore
这取决于你。
实体有父母吗?那么您可能希望使用urlsafe 表示,因为单个字符串将包含实体的完整路径。如果您改用 ID - 您可能需要手动将所有父母的 ID 包含到根目录。
没有父母和 ID 是数字/字母数字?然后只需使用看起来更干净的 ID(同样,这不是规则,完全取决于您)。
没有父母,但 ID 中有特殊字符?使用urlsafe 表示,因为您可能会遇到无法使用某些特殊字符而不在 HTTP 中对其进行编码的问题。
注意 #1:urlsafe 表示具有可以轻松解码的实体名称编码,这不太可能是隐私问题,但您仍然应该注意它。实际数据 (ID) 也经过简单编码,可以轻松解码,因此在使用电子邮件等个人信息作为 ID 时要小心,urlsafe 不安全。
【讨论】:
urlsafes 泄露敏感信息,那么只需在传输之前对其进行加密给用户并在返回时使用只有您的应用知道的密钥进行解密。