Python 无法使Google终结点在多个服务上工作
多亏了asamarin,我才知道如何在同一个google应用程序引擎(cf)中获得不同的端点 但我无法让它工作(至少在dev服务器上,我没有尝试将它推到云端)。我有两个模块:module1和module2,每个模块都运行一个独立的api(使用google端点)。 在每个moduleX/main.py中,我都有以下代码:Python 无法使Google终结点在多个服务上工作,python,google-app-engine,google-cloud-endpoints,Python,Google App Engine,Google Cloud Endpoints,多亏了asamarin,我才知道如何在同一个google应用程序引擎(cf)中获得不同的端点 但我无法让它工作(至少在dev服务器上,我没有尝试将它推到云端)。我有两个模块:module1和module2,每个模块都运行一个独立的api(使用google端点)。 在每个moduleX/main.py中,我都有以下代码: import endpoints from protorpc import remote # ... some code @endpoints.api(name="modul
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时,它们的启动情况良好(本地主机上的模块1:8080,本地主机上的模块2:8081)
问题来了:
- localhost:8080/_ah/api/explore工作得很好,我可以用不同的方法看到我的module1api
- localhost:8081/_-ah/api/explore花费了很长时间,然后找到与module1完全相同的api,除了当我单击它时,它找不到方法
discoveryRestUrl
相同的信息。你会承认这很有趣
我做错什么了吗?是否只有dev服务器不处理具有多个服务的端点
感谢您的帮助我相信这个问题只存在于dev_appserver中,因为我在本地遇到了与您相同的问题,但一旦部署,它就可以正常工作 My endpoint service的My 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
运行时:python27
线程安全:正确
api_版本:1
服务:
处理程序:
-网址:/\u-ah/spi/*
脚本:my_script.api
图书馆:
-姓名:pycrypto
版本:2.6
-名称:端点
版本:1.0
一旦部署,为了达到我的api,我向https://-dot-.appspot.com/_ah/api
因此,对于您给出的代码,您需要点击的端点是https://-dot-.appspot.com/_ah/api//v0/
请注意,
在app.yaml中定义,
和
将在my_script.api
中的python代码中声明
如前所述,为了在dev_appserver上本地工作,我相信您需要在dev_appserver的自身实例中运行每个端点模块。诚然,我还没有让它在本地完全工作,因为当我尝试这样做时,我会收到关于我的数据存储被锁定的错误,但我相信修复这个问题应该是可能的,正如所指出的。我相信这个问题只存在于dev_appserver中,因为我在本地遇到了与您相同的问题,但一旦部署,它就可以正常工作 My endpoint service的My 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
运行时:python27
线程安全:正确
api_版本:1
服务:
处理程序:
-网址:/\u-ah/spi/*
脚本:my_script.api
图书馆:
-姓名:pycrypto
版本:2.6
-名称:端点
版本:1.0
一旦部署,为了达到我的api,我向https://-dot-.appspot.com/_ah/api
因此,对于您给出的代码,您需要点击的端点是https://-dot-.appspot.com/_ah/api//v0/
请注意,
在app.yaml中定义,
和
将在my_script.api
中的python代码中声明
如前所述,为了在dev_appserver上本地工作,我相信您需要在dev_appserver的自身实例中运行每个端点模块。诚然,我还没有在本地完全实现这一点,因为当我尝试这样做时,我会发现我的数据存储被锁定的错误,但我相信正如前面提到的那样,解决这个问题是可能的。非常感谢通过多个服务使用端点链接到现有项目的任何链接/git repo!我也面临同样的问题。找到解决方案了吗?没有,我们必须重新组织我们的项目:/非常感谢通过多个服务使用端点连接到现有项目的任何链接/git repo!我也面临同样的问题。找到解决方案了吗?没有,我们必须重新组织我们的项目:/