[python] 端點API - protorpc驗證錯誤


Answers

Question

當我使用端點時,我從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()出現如下錯誤:( 完全跟踪 ):

TypeError:只能從確切類型為Application的實體進行複制。 收到了一個Application實例。

並且用於調用application.list()錯誤如下:( 完全跟踪 ):

ValidationError:字段項的預期類型<class '.Application'> <Application name: u'test'> ,找到<Application name: u'test'> (type <class '.Application'> <Application name: u'test'> <class '.Application'>

可能是什麼導致了這個? 我的其他模型具有幾乎相同的代碼(只是不同的屬性)工作正常。






Related