GAE端点生成错误的发现文档

时间:2017-11-20 09:56:52

标签: google-cloud-endpoints endpoints-proto-datastore client-library

我已升级到最新的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多年来一直没有更新......我真的不知道错误来自哪里。

感谢您的帮助!

0 个答案:

没有答案