将 API 类分成多个文件时,API 资源管理器会为所有资源显示相同的请求定义。
因此,基于下面显示的结构(如果太长,我深表歉意),在 API 资源管理器中,my_api.api_a.test和my_api.api_b.test都显示相同的属性attr_b,这是 api_server 列表定义中的最后一个。如果我更改它并将 ApiA 放在最后,那么这两种方法都会显示attr_a。
知道我做错了什么
# model/model_a.py
class A(EndpointsModel):
attr_a = ndb.StringProperty()
# model/model_b.py
class B(EndpointsModel):
attr_b = ndb.StringProperty()
# api/__init__.py
my_api = endpoints.api(name='my_api', version='v1')
# api/api_a.py
@my_api.api_class(resource_name='api_a')
class ApiA(remote.Service):
@A.method(name='test', ...)
...
# api/api_b.py
@my_api.api_class(resource_name='api_b')
class ApiB(remote.Service):
@B.method(name='test', ...)
...
# services.py
from api import my_api
application = endpoints.api_server([ApiA, ApiB])
还尝试如下定义 api_server,但根本不起作用。
application = endpoints.api_server([my_api])