【问题标题】:Unable to get Google endpoints working over multiple services无法让 Google 端点在多个服务上工作
【发布时间】:2016-09-08 01:38:12
【问题描述】:

感谢 asamarin,我已经能够弄清楚如何在同一个谷歌应用引擎中获取不同的端点(参见 Using Google endpoints in different modules of the same app)。

但我无法让它工作(至少对于开发服务器,我没有尝试将它推送到云端)。我有两个模块:module1 和 module2,它们每个都运行一个独立的 api(使用谷歌端点)。 在每个 moduleX/main.py 我都有这个代码:

import endpoints
from protorpc import remote

# ... some code

@endpoints.api(name="moduleX", version='v0') # X being 1 or 2 obviously
class ModuleX(remote.Service):

# ... definition of the different methods

api = endpoints.api_server([ModuleX])

当我使用两个对应的模块 yaml 文件运行 dev_appserver.py 时,它们启动良好(localhost:8080 上的 module1,localhost:8081 上的 module2)。

问题来了:

  • localhost:8080/_ah/api/explore 运行良好,我可以使用不同的方法查看我的 module1 API

  • localhost:8081/_ah/api/explore 需要很长时间才能找到与 module1 完全相同的 API,但当我单击它时,它找不到方法。

我和 Postman 玩了一会儿,看看木头下发生了什么,发现对 localhost:8080/_ah/api/discovery/v1/apis 和 localhost:8081/_ah... 的调用都返回与discoveryRestUrl 相同的信息是 localhost:8080/_ah/api/discovery/v1/apis/module1/v0/rest。你会承认这很有趣。

我做错了吗?是否只有开发服务器不处理具有多个服务的端点?

感谢您的帮助

【问题讨论】:

  • 任何链接/git repo到使用多个服务端点的现有项目将不胜感激!
  • 我面临同样的问题。找到任何解决方案了吗?
  • 不,我们必须重新组织我们的项目:/

标签: python google-app-engine google-cloud-endpoints


【解决方案1】:

我相信这个问题只存在于 dev_appserver,因为我在本地遇到了和你一样的问题,但是一旦部署它就可以正常工作。

我的端点服务的 app.yaml 如下所示:

runtime: python27
threadsafe: true
api_version: 1
service: <module-name>

handlers:
- url: /_ah/spi/.*
  script: my_script.api

libraries:
- name: pycrypto
  version: 2.6
- name: endpoints
  version: 1.0

部署后,为了访问我的 api,我将请求发送到 https://&lt;module-name&gt;-dot-&lt;project-name&gt;.appspot.com/_ah/api

因此,对于您提供的代码,您需要访问的端点是 https://&lt;module-name&gt;-dot-&lt;project-name&gt;.appspot.com/_ah/api/&lt;moduleX&gt;/v0/&lt;method&gt; 请注意,&lt;module-name&gt; 在 app.yaml 中定义,&lt;moduleX&gt;&lt;method&gt; 将在 my_script.api 的 python 代码中声明。

为了在 dev_appserver 上本地运行,我相信您需要在其自己的 dev_appserver 实例中运行每个端点模块,如 here 所述。诚然,我还没有让它完全在本地工作,因为当我尝试这样做时,我收到关于我的数据存储被锁定的错误,但我相信应该可以解决这个问题,如 here 所述。

【讨论】:

    猜你喜欢
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    相关资源
    最近更新 更多