我正在开发App Engine应用程序并计划提供API.我想将此API与主站点分开,因此我尝试使用"模块"功能来分离这两个应用程序.主站点将是"默认"模块,API将位于"api"模块中.但是,我遇到了麻烦.
现在我的主应用程序的YAML文件是这样的:
application: my-app module: default runtime: python27 api_version: 1 ... handlers: # Root handler - url: /.* script: main.app secure: always ...
和API模块YAML文件,如下所示:
application: my-app module: api runtime: python27 api_version: 1 handlers: # Endpoints handler - url: /_ah/spi/.* script: api_main.app secure: always ...
在开发服务器上,应用程序在端口8000上提供,API在端口7998上提供.
使用此配置,我的API不起作用.每当我尝试使用localhost:7998/_ah/api/explorer访问它时,我都没有得到任何结果.如果我尝试手动运行API请求,则会收到以下错误:{"error": {"message": "BackendService.getApiConfigs Error"}}
.
奇怪的是我在开发服务器日志中也看到以下几行:
INFO 2014-06-15 18:00:32,368 module.py:639] default: "POST /_ah/spi/BackendService.getApiConfigs HTTP/1.1" 500 - INFO 2014-06-15 18:00:32,368 module.py:639] api: "GET /_ah/api/my-app/v1/events HTTP/1.1" 500 60
似乎API模块正在尝试将数据POST到默认模块(如第一行日志中所示).
现在,我发现的唯一解决方法是/_ah/spi/.*
在默认的YAML文件中添加相同的处理程序,但在这种情况下,主应用程序和API之间的分离无效.
有人能告诉我云端点是否支持我想要实现的配置?非常感谢你!