目前,我使用Python端点服务来更改用户名。如果没有问题,我会返回一个包含大量信息的MessageField。
但有时候,请求是正确的,我想告诉客户他可以处理的错误:"嘿,抱歉,但已经有一个名字的用户",或者, "嘿,对不起,但你今天已经更改了你的名字!"。
问题是,当我提出像UnauthorizedException或其他任何东西的端点异常时,我只能发出一条自定义消息:
raise endpoints.UnauthorizedException('Invalid user_id or auth_token !')
结果:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "Invalid user_id or auth_token !",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid user_id or auth_token !"
}
}
有没有办法真正自定义此消息?或者在这种情况下返回一个完全不同的MessageField?
例如,我想返回这样的JSON(可能使用HTTP Code 400):
{
"error": {
"username_already_exist": 1
}
}
谢谢!
答案 0 :(得分:1)
如果您不想返回使用例外构建的JSON,则必须在代码中直接返回,而不是引发异常。您可以构建您提到的JSON,然后每当您点击"异常点"时返回它。
或者你可以做的是使用消息将错误发送到客户端,然后让客户端捕获该异常,适当地解析并显示你想要的任何内容。