问题标签 [endpoints-proto-datastore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-app-engine - 使用 endpoints-proto-datastore,如何将属性传递给 EndpointsModel 中不包含的方法
我正在尝试将属性传递给我的EndpointsModel中不包含的 API 调用。例如,假设我有以下模型:
然后假设我想attr2
作为参数传入,但我不想attr2
被用作过滤器,也不希望它存储在模型中。我只是想传入一些字符串,在方法中检索它并使用它来执行一些业务逻辑。
文档描述了query_fields
用于指定要传递给方法的字段的参数,但这些似乎与模型中包含的属性耦合,因此您不能传入模型中未指定的属性。
同样,文档指出您可以通过路径变量传递属性:
但这需要您更改 URL,而且这似乎与query_fields
(该属性必须存在于模型中)具有相同的约束。
python - ImportError:没有名为 endpoints_proto_datastore.ndb 的模块
endpoints_proto_datastore.ndb
在 Python 中使用 Endpoints API 时,我无法导入模块。有没有人面临类似的问题?请让我知道可能是什么问题。
我正在使用适用于 Python 的 Google App Engine SDK 1.7.5。
python - 获取插入对象的id
我正在定义一个对用户进行建模的端点,如下所示。我可以通过 id 查询用户。但是插入用户时如何获取该ID?我的客户端是用 java 编写的,但我想知道如何使用 python 以及生成的 java 客户端库来检索 id。
python - 通过邮件查询端点用户
我正在尝试制作一种方法,该方法允许我通过用户电子邮件查询端点。有没有比我在下面做的更好的方法呢?一种可能只返回一条或零条记录。
android - 验证、识别和存储有关用户的敏感信息的最佳方式是什么?
为了了解端点,我正在构建一个名为“你在哪里?”的应用程序。该应用程序允许用户请求其他用户的位置。这个想法是通过让用户选择一个联系人,通过我的端点中的电话号码查找联系人来实现的。如果找到,则表示该联系人拥有该应用程序,并发送 GCM 请求该位置。如果未找到联系人,则会发送带有 URL 的短信,该 URL 将通过浏览器请求位置,执行所述位置的 http 发布并将服务器 GCM 发送回请求位置的人。
我需要验证应用程序的用户并存储多个联系人的电话号码以及应用程序的用户。到目前为止,我将主要关注服务器端的事情。
如何以安全的方式存档上述内容?
到目前为止,我正在为我的 API 启用 OAuth 2.0 并将user_required=True
as 参数传递给我的Model.method
装饰器。导致以下代码:
但是上面的代码只需要一个有效的 gmail 帐户。我在想一些事情,如果您已经有了电话号码,您只能访问用户?如果我限制 get 方法上的响应字段以排除电话号码,就会出现这种情况......除非有人决定暴力破解服务。建议?评论?
据此,我收集到我可以将我的端点配置为仅接受来自我的应用程序的请求。是对的吗?如果是这样,有人不能从 apk 中提取需求信息或修改它以执行......邪恶吗?:)
更新:
A 请求 B 的位置
如果未找到,则通过电话号码查询端点,如果找到,只需通过 SMS 发送请求...转到 2。
请求被转发到 GAE 应用程序
这是通过插入一个 ID 为 UUID 的 Location 端点并向 B 发送有关请求的 GCM 来完成的
GAE 应用程序验证 A 的秘密 ID 在 B 的白名单中
没有白名单,秘密 id 是 UUID,所以这一步被取消了
然后应用程序查询 B 的位置
如果 B 决定授予对其位置 B 的访问权限,则只需根据 UUID 更新 Location 端点
一旦应用程序检索到此信息,它就会验证它是否仅将此信息发送给由 A 的秘密 ID 标识的用户
当 B 更新其位置时,GAE 向 A 发送 GCM 通知更新
然后将信息安全地发送给 A 的客户
完毕!GCM 和 SMS(和 HTTPS)可以被认为是安全的……对吧?
更新:GCM 并不安全……但它真的那么重要吗?
google-app-engine - EndpointsModel 与 ndb.Model
所以我偶然发现了EndpointsModel
一种创建模型的方法。上网看的时候基本没有教程。对于用过的人来说,有什么好处呢?而不是ndb.Model
我的意思。
编辑:
另外,我试图模仿什么是验证、识别和存储用户敏感信息的最佳方式中的代码?只是为了检查一下,但我的日食红线:
endpoints-proto-datastore - _message_fields_schema 自动填充
在这个使用_message_fields_schema()
示例模型的优秀库给出的示例中,只定义了一些属性引用。用所有属性和 ID 填充元组的最佳方法是什么?
描述这一点的最佳方式是,如果我在 SQL 中执行此操作:
有点做作,但希望你能明白。
python - 使用端点原型数据存储时设置父键而不是子键
如何为 EndpointsModel 设置父/祖先并让数据存储区自动生成实体 ID/密钥?
我尝试调整keys_with_ancestors示例,但似乎遇到了一些障碍,因为它需要同时指定 id 和 parent。我想做类似的事情,除了只提供父 ID 或密钥,并让应用引擎数据存储区自动生成实体 ID/密钥。
以下显示了我将如何仅使用 NDB 来完成它。
这是可能的吗?有人能指出我正确的方向吗?谢谢。
android - 使用 Cloud Endpoints for Google App Engine 对 Android 应用进行本地测试
我正在开发一个 Android 应用程序,它在 Google App Engine(Python)上使用 Google Cloud Endpoints 作为其后端。Android 应用程序授权用户在 Android 设备上使用 Google Play 服务,这一切都非常有效。
但是,既然我有实际用户,我希望能够在将任何应用程序引擎 API 更改部署到生产之前在本地测试这一切,而且我还没有弄清楚如何让 Android 应用程序与我的本地开发服务器通信任何地方。测试建议建议我只是对API Explorer 进行一些手动修改,但由于我使用 Endpoints Proto Datastore 作为我的 API,这使得 Android 开发变得容易,它也使 API Explorer 基本上没用,因为我需要的调用制作比我手工生成的要复杂得多。
这个问题的一个答案表明有一种方法可以将 Android 客户端指向本地服务器,但是虽然我可以使用 --host 参数让 dev_appserver 的默认服务器侦听 localhost 以外的其他东西,但我似乎无法找到一种对 API 服务器执行相同操作的方法。即使我能做到这一点,它也可能只是为我的 Android 应用程序建立完整的端到端本地测试设置的第一步。
有人可以发布有关我如何执行此操作的更多详细信息,或者缺少详细信息,请告诉我测试在 App Engine 上使用 Google Cloud Endpoints 的 Android 应用程序的最佳实践?提前感谢您的任何答案。
google-cloud-endpoints - 尝试检索单个实体时出错
过去几天我一直在使用 Google Cloud Endpoints(旨在将其与 AngularJS 挂钩),当我尝试从我的数据存储中检索单个实体时遇到了一些麻烦。
我的ndb
模型设置是:
这是我定义的用于检索实体的 API 方法'title'
:
如果我使用'id'
(由 提供的帮助方法EndpointsModel
)代替'title'
请求字段,API 方法可以正常工作。但是,当我使用'title'
时,我得到了
404 未找到
{“error_message”:“找不到配方。”,“state”:“APPLICATION_ERROR”}
谁能指出我是否在某处遗漏了什么?
注意:见评论。用于阅读的问题中的错误
400 错误请求
{“error_message”:“解析 ProtoRPC 请求时出错(无法解析请求内容:消息 RecipeProto_title 缺少必填字段标题)”,“状态”:“REQUEST_ERROR”}
但是@sentiki能够解决这个先前的错误。