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 您发布给用户的数据,他们可能不知道您所做的更改。