Amb*_*oos 2 python google-app-engine google-cloud-endpoints
我已经开始使用Cloud Endpoint API作为首次使用Python的程序员(具有Java和PHP经验).
我想将所有内容保存在一个API中,但将不同的资源调用分成不同的文件.文档以此为例:
an_api = endpoints.api(name='library', version='v1.0')
@an_api.api_class(resource_name='shelves')
class Shelves(remote.Service):
...
@an_api.api_class(resource_name='books', path='books')
class Books(remote.Service):
...
endpoints.api_server([an_api])
Run Code Online (Sandbox Code Playgroud)
我想做的是把Shelves和Book类放在不同的文件中,因为它们都会变得很长.我试过移动它们,但这导致了一个空的API发现文档,因为API启动时可能没有加载/运行/解释文件.
我怎样才能解决这个问题?我觉得它会有所作为,import但我无法弄明白......
谢谢!
是的,您必须确保api类已正确导入,但如果出现此问题,您将获得一些运行时异常而不是空的发现文档.
我可以看到的问题是你正在创建api服务器,an_api其中包含用于装饰实际API类的对象.您应该执行以下操作:
an_api = endpoints.api(name='library', version='v1.0')
@an_api.api_class(resource_name='shelves')
class Shelves(remote.Service):
...
@an_api.api_class(resource_name='books', path='books')
class Books(remote.Service):
...
endpoints.api_server([Shelves, Books])
Run Code Online (Sandbox Code Playgroud)
然后,从这个到多模块API,您将很容易遇到循环依赖情况(Python无法处理的事情).然后,您需要一个您定义的通用模块an_api; 一组API模块,实现API的一部分,所有这些import都是通用模块; 然后你需要一个调用的主模块endpoints.api_server.
注意:在Python世界中,单个模块(文件)确实很长并且其中包含很多类并不罕见; 这可能看起来很奇怪来自Java或结构良好的PHP.
| 归档时间: |
|
| 查看次数: |
908 次 |
| 最近记录: |