Python 在Google云端点中返回自定义HTTP错误原因

Python 在Google云端点中返回自定义HTTP错误原因,python,google-app-engine,google-cloud-endpoints,Python,Google App Engine,Google Cloud Endpoints,谷歌自己的REST API在出现错误时会返回详细的响应,例如: { "error": { "errors": [ { "domain": "global", "reason": "invalidBookshelfId", "message": "Invalid bookshelf ID." } ], "code": 400, "message": "Invalid bookshelf ID." } } 在Google Cloud Endpoints for Py

谷歌自己的REST API在出现错误时会返回详细的响应,例如:

{
 "error": {
  "errors": [
   {
"domain": "global",
"reason": "invalidBookshelfId",
"message": "Invalid bookshelf ID."
   }
  ],
  "code": 400,
  "message": "Invalid bookshelf ID."
 }
}

在Google Cloud Endpoints for Python中,例如,
可以引发Endpoints.BadRequestException('Error message')
,但是除了错误消息之外,我还想返回上面示例中的“code”或“reason”。有没有办法实现这一点?

该代码对应于与
BadRequestException
关联的状态代码。其他例外情况也有,例如
端点。未经授权的异常
对应于状态代码
401
。至于
原因
,这些都是由谷歌的API基础设施设置的


您想在
消息中设置哪些是不可能的?

同一HTTP状态代码可能会有不同的错误条件。如果API客户端希望对这些错误条件采取不同的操作,我们如何区分它们?当然,客户端可能会解析消息,但感觉像是黑客攻击。最好为消息和错误代码/原因设置单独的字段。问题是消息需要在客户端进行手动字符串解析,或者强制客户端创建异常,然后进行处理,或者在API级别解析字符串。