Python 来自google端点的自定义异常消息异常
目前,我有一个Python端点服务来更改用户的名称。如果没有问题,我将返回一个包含大量信息的MessageField 但有时,请求是正确的,我想对客户说,他可以处理一个错误:嘿,对不起,已经有一个同名用户,或者,嘿,对不起,今天您已经更改了名称 问题是,当我引发端点异常(如UnauthorizedException或其他任何异常)时,我可以只放置一条自定义消息:Python 来自google端点的自定义异常消息异常,python,google-app-engine,google-cloud-endpoints,google-cloud-platform,Python,Google App Engine,Google Cloud Endpoints,Google Cloud Platform,目前,我有一个Python端点服务来更改用户的名称。如果没有问题,我将返回一个包含大量信息的MessageField 但有时,请求是正确的,我想对客户说,他可以处理一个错误:嘿,对不起,已经有一个同名用户,或者,嘿,对不起,今天您已经更改了名称 问题是,当我引发端点异常(如UnauthorizedException或其他任何异常)时,我可以只放置一条自定义消息: raise endpoints.UnauthorizedException('Invalid user_id or auth_toke
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代码400:
{
"error": {
"username_already_exist": 1
}
}
谢谢 如果不想返回包含异常的JSON,则必须在代码中直接返回,而不是引发异常。您可以构建您提到的JSON,然后在遇到异常点时返回该JSON
或者,您可以使用该消息将错误发送给客户端,然后让客户端捕获该异常,进行适当的解析,并显示您想要的任何内容。我还想过返回其他消息类,或者构建自定义JSON或其他任何内容,但是,我认为这是不可能的:在Google SDK中有一个类,如果该方法返回的对象的类型与decorator中指定的类型不同,则会引发异常。您尝试过这样做吗?是的,您无法绕过调用的方法的返回类型。您必须调整您的方法,以便它们最终返回适合该方法的内容。无论如何,您仍然可以在客户端捕获错误