如果你有一个EndpointsModel
类 Employee,它包含一个EndpointsModel
类 Company 的引用,你如何在remote.Service
CompanyService 类中包含一个列出其雇员的方法?
这个问题最好表述为“如何在方法中访问查询变量?”
路径可能如下所示:
GET http://localhost:8080/_ah/api/contacts/v1/companies/123/employees
这是CompanyService::employees()
:
@Employee.query_method(http_method='GET', path='companies/{id}/employees')
def employees(self, company):
"""
Retrieve the employees for this company
"""
company_key = ndb.Key(Company, company)
return Employee.query(Employee.company == company_key).fetch(20)
当company_key
使用硬编码值计算时,比如“123”,这种方法实际上工作得很好。但是如何获得公司ID?在“query”方法中,与“query_method”方法相反,这只是调用该方法的模型参数的一个属性。但是似乎没有一种简单的方法可以从query
调用“query_method”方法的参数中提取值。
由于这是我想创建的任何 API 的核心设计功能,我真的需要解决它。包含 EPD 和端点库的工程样板在评论中提供了一些很好的文档,但代码本身高于我的工资等级 :-)