问题标签 [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.

0 投票
1 回答
267 浏览

python - GAE NDB with Endpoints Proto Datastore:如何格式化参考属性的响应字段?

我在 DataStore 模型中有父子关系:Building实体与Office. 我对模型执行查询Building,我想限制OfficeJSON 响应中的实体字段。这是我的代码:

collection_fields属性仅适用于定义父实体字段(建筑物),但如何限制子实体的字段?

这是我在 JSON 中的响应消息:

我想从Office对象中删除一些字段(即 field1、field2 等)以减少 JSON 响应大小。定义有限_message_fields_schemaOffice对象不是好的解决方案,因为它在全局范围内有效。我只想格式化这个单一的查询。

0 投票
1 回答
1004 浏览

google-chrome - 通过本地 HTTP 使用 Google Cloud Endpoints API

我正在使用 OSX。我已经在我的开发服务器中设置了我的端点。当我访问时localhost:8080/_ah/api/explorer,我收到此错误消息:

您正在探索的 API 托管在 HTTP 上,这可能会导致问题。了解如何将 Explorer 与本地 HTTP API 一起使用

该链接指示我使用以下特殊标志启动 Chrome 会话

我对在哪里输入此行感到困惑?我假设它应该输入到 CLI 中,所以我在终端上尝试了它:

当然,响应是这样的:

经过一番研究,我发现我可以使用该$ google-chrome命令启动 Chrome 会话,但这也失败了-bash: google-chrome: command not found

我也尝试使用 定位 Chrome $ whereis google-chrome,但这没有返回任何响应。

0 投票
2 回答
535 浏览

google-app-engine - 谷歌云:@endpoints.api,“模块”对象没有属性“api”

在尝试时appcfg.py update myProject,我的端点无法更新。这是跟踪的一部分:

我试图检查日志http://localhost:8080/_ah/spi/BackendService.getApiConfigs,但终端产生以下错误:

这是我的代码:

我正在关注本教程。我哪里做错了?

0 投票
0 回答
124 浏览

google-app-engine - 发布 ndb StructuredProperty _Message__decoded_fields

我的问题:

我正在尝试使用“POST”请求在 GAE 中填充包含 ndb.Structured Property() 的数据存储模型。

最近有人问过这个问题但没有回答(如何“发布”ndb.StructuredProperty?

我有以下两个模型:

我正在尝试发布这些数据:

使用以下 API 请求:

从客户发帖后,我收到以下错误:

问题:

从我对 endpoints-proto-datastore 模块的高度理解来看,似乎当 json 被解码并保存到传入消息中时(utils.py 第 431 行),它没有检查结构化/本地结构化属性并将它们的键保存为这一切都很好,直到 FromValue(ndb/model.py 第 115 行)检查结构化属性的实例并尝试将结构化属性从 protorpc 消息递归转换为模型实体(需要 _Message__decoded_fields)。

Sasxa(请参阅上面的链接)通过使用转换为 ProtoRPC 消息类的 EndpointsAliasProperty 来绕过 endpoints-proto-datastore 将结构化属性自动转换为其关联的模型实体,找到了解决此问题的一个很好的解决方法,但是这种解决方法有一些方面使我想做的事情变得困难的效果。

问题:

有谁知道如何使用“POST”请求正确填充包含 StructuredProperty 的数据存储模型,并且有任何可用的工作示例吗?

0 投票
0 回答
38 浏览

python-2.7 - 如何在我的 Python API for Google AppEngine 中获取名称属性?

我有一个模型课。它是一个用户。用户有许多不同的属性,但为了这个问题,我只会发布一些最重要的属性。

这是我的models.py

在我的 user_api.py 中,当创建用户时,将用户放入数据存储区,并为该用户提供为他们创建的唯一存储桶名称。我已经成功编写了将为他们创建存储桶并将字符串存储在用户模型中的代码。

我想知道的是,在我的 user_api.py 文件中,我使用什么方法将返回我指定的用户的 user_bucket 的字符串。

这是一个api的例子。没有所有的注释和导入。

我想知道的是我写了什么api方法,我如何写它来返回我输入到该方法的用户的桶,我是否使用实体键?我完全迷失了这个。

0 投票
0 回答
28 浏览

endpoints-proto-datastore - 使用 endpoints-proto-datastore 列出引用实体

如果你有一个EndpointsModel类 Employee,它包含一个EndpointsModel类 Company 的引用,你如何在remote.ServiceCompanyService 类中包含一个列出其雇员的方法?

这个问题最好表述为“如何在方法中访问查询变量?”

路径可能如下所示:

这是CompanyService::employees()

company_key使用硬编码值计算时,比如“123”,这种方法实际上工作得很好。但是如何获得公司ID?在“query”方法中,与“query_method”方法相反,这只是调用该方法的模型参数的一个属性。但是似乎没有一种简单的方法可以从query调用“query_method”方法的参数中提取值。

由于这是我想创建的任何 API 的核心设计功能,我真的需要解决它。包含 EPD 和端点库的工程样板在评论中提供了一些很好的文档,但代码本身高于我的工资等级 :-)

0 投票
1 回答
71 浏览

google-cloud-endpoints - endpoints-proto-datastore - 在 POST 上应该需要字段,但不是 GET

假设我有一个带有两个必填字段的模型:

然后我想使用 endpoints-proto-datastore 来查询attr1attr2:

如果我只提供其中一个字段,这将失败 - 在 API Explorer 中,这是一个必填字段,但 API 本身会返回:

显然我可以将它们标记为不需要,然后在应用程序代码中处理检查 - 但我想知道是否有人提出了更好的解决方案。

非常感谢

0 投票
1 回答
61 浏览

python - 使用 ndb 在另一种类型中多次引用单个 Google 数据存储类型

我有以下 2 ndb 模型

如您所见,Bar 有几个对 Foo 的引用。

现在,当我为每个引用分配值时,第二个替换第一个,并且只有它被存储到数据库中,最有趣的是,当使用 dev_appserver 数据存储查看器查找时,该属性位于名称“Foo”下,不在第二个属性的名称下,它取代了第一个。

插入后这是我所期望的

但我只得到

在数据存储查看器中,

0 投票
1 回答
62 浏览

python - 无法获取库来编译云端点 python

这是我运行 endpointscfg.py 时的文件,它告诉我它不是 ProtoRPC 服务。我已经尝试过应用程序、api_root 和 ffsapi。代码部署得很好,只是不能让库的编译工作。

如果有帮助,这是 yaml 文件

0 投票
0 回答
202 浏览

firebase-authentication - 如何使用带有端点原型数据存储的 Firebase 进行身份验证?

我一直在尝试使用 Firebase 身份验证设置我的 EndpointsV2 后端(已启用计费),但是当我尝试生成 OpenAPI 规范或401 Unauthorized访问 API 时总是出现错误。

我当前的配置如下(生成 OpenAPI 时出错):

主要.py:

OpenAPI Gen 上的错误:

该错误使我认为,如果我只是简单地交换它"firebase"可能会起作用,但我已经尝试过并且刚刚得到 401。"google_id_token"issuers

我也开始在 GAE Logging 中看到这个错误:

我在测试中发送的 idToken(通过 Postman 使用 header 完成Authorization: Bearer [idToken])是使用生成的pyrebase,我检查了jwt.io以确认它实际上是一个有效的令牌。

我最初的想法是我没有audiences正确设置,但我不确定它应该是什么(尽管我尝试从 API Manager > Credentials 附加一个 ClientID)。

endpoints-proto-datastore是否可以在 endpointsv2 框架上使用 firebase 进行身份验证?如果是这样,我需要做些什么不同的事情才能让它发挥作用?如果没有,我拥有的代码是否可以在不使用的情况下立即工作endpoints-proto-datastore

编辑:

看起来这是端点库本身的问题

https://github.com/cloudendpoints/endpoints-python/issues/32