GAE endpoints generates wrong discovery doc

48 Views Asked by At

I have upgraded to the latest Cloud Endpoints 2.0 as well as the endpoints_proto_datastore to its latest commit. When I now try to generate the API discovery doc I get the following error messages:

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

The only two available endpoints are the following two methods which should update the User and the Position model:

@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

Before upgrading to Cloud Endpoints 2.0 everything worked fine. But now if I take a look into the generated discovery file both endpoints have a ProtorpcMessagesCombinedContainer in their request. But the combined container itself is defined with the properties of the Position model!

This is how both methods request attribute are defined:

 "request": {
  "$ref": "ProtorpcMessagesCombinedContainer",
  "parameterName": "resource"
 },

And this is the definition of the combined container (which has the properties of the Position model):

"ProtorpcMessagesCombinedContainer": {
  "id": "ProtorpcMessagesCombinedContainer",
  "type": "object",
  "properties": {
    "displayName": {
      "type": "string"
    },
    "shortName": {
      "type": "string"
    }
  }
},

Does anyone else had this issue with GAE and Cloud Endpoints 2.0?

What am I doing wrong? Usually the endpoints-proto-datastore should handle the ResourceContainer and the methods path parameters. Also the endpoints-proto-datastore wasn't updated for years ... I really don't know where the error comes from.

Thanks for your help!

0

There are 0 best solutions below