端点API - protorpc验证错误

时间:2016-02-21 18:39:33

标签: python google-app-engine google-cloud-endpoints endpoints-proto-datastore protorpc

当我使用端点时,我从protorpc得到了一些奇怪的错误。在这段代码中:

class Application(EndpointsModel):

    _message_fields_schema = ('id', 'name')

    created = ndb.DateTimeProperty(auto_now_add=True)
    name = ndb.StringProperty()
    roles = ndb.IntegerProperty(repeated=True)
    updated = ndb.DateTimeProperty(auto_now=True)
    owner = ndb.KeyProperty(kind='User')

@API.api_class(resource_name="application")
class ApplicationApi(protorpc.remote.Service):

    @Application.method(http_method="GET",
                        request_fields=('id',),
                        name="get",
                        path="applications/{id}")
    def ApplicationGet(self, instance):
        if not instance.from_datastore:
            raise endpoints.NotFoundException("Application not found.")
        return instance

    @Application.query_method(http_method="GET",
                              query_fields=('limit', 'order', 'pageToken'),
                              name="list",
                              path="applications")
    def ApplicationList(self, query):
        return query

当我致电application.get()时,错误如下:(full trace here):

  

TypeError:只能从确切类型为Application的实体进行复制。收到了应用程序实例。

并且调用application.list()错误如下:(full trace here):

  

ValidationError:字段项的预期类型<class '.Application'>,找到<Application name: u'test'>(类型<class '.Application'>

可能导致这种情况的原因是什么?我的其他模型具有几乎相同的代码(只是不同的属性)可以正常工作。

1 个答案:

答案 0 :(得分:1)

子类class JsonModel(EndpointsModel),让它重新开始工作。