我已升级到最新的Cloud Endpoints 2.0以及endpoints_proto_datastore到最新的提交。当我现在尝试生成API discovery doc时,我收到以下错误消息:
Method user.update specifies path parameters but you are not using a ResourceContainer This will fail in future releases; please switch to using ResourceContainer as soon as possible
Method position.update specifies path parameters but you are not using a ResourceContainer This will fail in future releases; please switch to using ResourceContainer as soon as possible
只有两个可用端点是以下两种方法,它们应该更新用户和位置模型:
@User.method(name='user.update', path='users/{id}', http_method='PUT')
def UserUpdate(self, user):
""" Update an user resource. """
user.put()
return user
@Position.method(name='position.update', path='positions/{id}', http_method='PUT')
def PositionUpdate(self, position):
""" Update a position resource. """
position.put()
return position
在升级到Cloud Endpoints 2.0之前,一切正常。但现在,如果我查看生成的发现文件,两个端点的请求中都有 ProtorpcMessagesCombinedContainer 。但组合容器本身是使用Position模型的属性定义的!
这是两个方法请求属性的定义方式:
"request": {
"$ref": "ProtorpcMessagesCombinedContainer",
"parameterName": "resource"
},
这是组合容器的定义(具有Position模型的属性):
"ProtorpcMessagesCombinedContainer": {
"id": "ProtorpcMessagesCombinedContainer",
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"shortName": {
"type": "string"
}
}
},
是否有其他人在使用GAE和Cloud Endpoints 2.0时遇到此问题?
我做错了什么?通常endpoints-proto-datastore应该处理ResourceContainer和方法路径参数。此外,端点 - proto-datastore多年来一直没有更新......我真的不知道错误来自哪里。
感谢您的帮助!