Appengine ID/Name 与 WebSafeKey
Appengine ID/Name vs WebSafeKey
在 java 中编写端点时,为了通过键查找项目,我应该使用 Id 还是 webSafeString 的关键?这在什么情况下很重要?
由你决定。
实体有parents吗?那么您可能希望使用 urlsafe
表示,因为单个字符串将包含实体的完整路径。如果您改用 ID - 您将需要手动将所有 parents 的 ID 添加到根。
否 parents & ID 是数字/字母数字?然后使用 ID,因为它们看起来更干净(同样,这不是规则,完全取决于您)。
没有 parents 但 ID 中有特殊字符?使用 urlsafe
表示,因为您可能会遇到无法使用某些特殊字符而不在 HTTP 中对其进行编码的问题。
注 #1:urlsafe
表示法对实体名称进行了编码,可以轻松解码,这不太可能是隐私问题,但您仍然应该注意这一点。实际数据(ID)也经过简单编码,可以轻松解码,因此在使用电子邮件等个人信息作为 ID 时要小心,它们在 urlsafe
.
[=33= 时不安全]
注 #2:如果您决定在将来更改数据结构 (parents <-> children),您可能会遇到一些 urlsafe
您发布给用户的数据,他们可能不知道您所做的更改。
在 java 中编写端点时,为了通过键查找项目,我应该使用 Id 还是 webSafeString 的关键?这在什么情况下很重要?
由你决定。
实体有parents吗?那么您可能希望使用
urlsafe
表示,因为单个字符串将包含实体的完整路径。如果您改用 ID - 您将需要手动将所有 parents 的 ID 添加到根。否 parents & ID 是数字/字母数字?然后使用 ID,因为它们看起来更干净(同样,这不是规则,完全取决于您)。
没有 parents 但 ID 中有特殊字符?使用
urlsafe
表示,因为您可能会遇到无法使用某些特殊字符而不在 HTTP 中对其进行编码的问题。注 #1:
[=33= 时不安全]urlsafe
表示法对实体名称进行了编码,可以轻松解码,这不太可能是隐私问题,但您仍然应该注意这一点。实际数据(ID)也经过简单编码,可以轻松解码,因此在使用电子邮件等个人信息作为 ID 时要小心,它们在urlsafe
.注 #2:如果您决定在将来更改数据结构 (parents <-> children),您可能会遇到一些
urlsafe
您发布给用户的数据,他们可能不知道您所做的更改。