如何从python google app engine endpoints中的方法返回对象?

2024-05-08 15:09:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用googleappengine运行我自己的身份验证,并使用来自this question:的代码

我在endpoints服务器类中编写了如下方法:

 @classmethod
 def get_user_from_headers(cls):
    try:
        user_id = cls.request_state.headers['user-id']
        api_token = cls.request_state.headers['api-token']
        user = ndb.Key(User, int(user_id)).get()
        if user.apiToken != api_token:
            raise endpoints.UnauthorizedException('Api Token error')
        return user
    except:
        raise endpoints.UnauthorizedException('no user found')

其他地方:

@endpoints.method(containers.AddMemberToEventContainer, messages.EventsMessage, path='events/{event_id}',
                  http_method='POST', name='add.member.to.event')
def add_member_to_event(self, req):
    user = self.get_user_from_headers()

user类只是扩展了ndb.Model,即user(ndb.Model)

但是当我得到返回的用户时,python认为有一个错误,即user=self.get\u user\u from\u headers()行不能调用该用户

在get headers方法中,我在返回用户之前尝试了日志记录,它会像预期的那样出现在日志中。如何将用户从这个方法传回endpoints方法

编辑: 实际错误如下:

TypeError: 'User' object is not callable

Tags: 方法用户fromselftokeneventapiid