简介
随着移动开发和前端开发的崛起,越来越多的 Web 后端应用都倾向于实现 Restful API。 Restful API 是一个简单易用的前后端分离方案,它只需要对客户端请求进行处理,然后返回结果即可, 无需考虑页面渲染,一定程度上减轻了后端开发人员的负担。 然而,正是由于 Restful API 不需要考虑页面渲染,导致它不能在页面上展示错误信息。 那就意着当出现错误的时候,它只能通过返回一个错误的响应,来告诉用户和开发者相应的错误信息,提示他们接下来应该怎么办。 本文将讨论 Restful API 中的错误处理方案。
设计错误信息
当Restful API 需要抛出错误的时候,我们要考虑的是:这个错误应该包含哪些信息。 我们先看看 Github, Google, Facebook, Twitter, Twilio 的错误信息是怎样的。
Github (use http status)
{"message":"Validation Failed","errors":[{"resource":"Issue","field":"title","code":"missing_field"}]}
Google (use http status)
{"error":{"errors":[{"domain":"global","reason":"insufficientFilePermissions","message":"The user does not have sufficient permissions for file {fileId}."}],"code":403,"message":"The user does not have sufficient permissions for file {fileId}."}}
Facebook (use http status)
{"error":{"message":"Message describing the error","type":"OAuthException","code":190,"error_subcode":460,"error_user_title":"A title","error_user_msg":"A message","fbt