0

我已经升级到最新的Cloud Endpoints 2.0以及endpoints_proto_datastore到它的最新提交。当我现在尝试生成 API发现文档时,我收到以下错误消息:

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 和 Position 模型的方法:

@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 和方法路径参数。此外,endpoints-proto-datastore 多年没有更新......我真的不知道错误来自哪里。

谢谢你的帮助!

4

0 回答 0