Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法使Google终结点在多个服务上工作_Python_Google App Engine_Google Cloud Endpoints - Fatal编程技术网

Python 无法使Google终结点在多个服务上工作

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

多亏了asamarin,我才知道如何在同一个google应用程序引擎(cf)中获得不同的端点

但我无法让它工作(至少在dev服务器上,我没有尝试将它推到云端)。我有两个模块:module1和module2,每个模块都运行一个独立的api(使用google端点)。 在每个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时,它们的启动情况良好(本地主机上的模块1:8080,本地主机上的模块2:8081)

问题来了:

  • localhost:8080/_ah/api/explore工作得很好,我可以用不同的方法看到我的module1api

  • localhost:8081/_-ah/api/explore花费了很长时间,然后找到与module1完全相同的api,除了当我单击它时,它找不到方法

我和Postman玩了一会儿,看看树林下面发生了什么,发现对localhost:8080/_-ah/api/discovery/v1/api和localhost:8081/_-ah的调用都是。。。返回与本地主机为8080/_ah/api/discovery/v1/api/module1/v0/rest的
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!我也面临同样的问题。找到解决方案了吗?没有,我们必须重新组织我们的项目:/