API 錯誤處理

錯誤處理 (error handle)

實作注意事項

  • 使用正確的 HTTP 狀態碼
  • 自訂商業邏輯錯誤碼 (可選)
  • 給開發者的錯誤訊息
  • 給使用者的錯誤訊息

HTTP 狀態碼

狀態碼 意義
2xx 成功
4xx 應用層級錯誤(常見 400, 401, 403, 404)
5xx 非預期的錯誤(常見 500, 503)

單筆錯誤訊息

Github Style

Request URL: https://api.github.com/user
Request Method:GET
Status Code:401 Unauthorized

{
  "message": "Requires authentication",
  "documentation_url": "https://developer.github.com/v3"
}

Facebook style

{
  "error": {
    "message": "Message describing the error",
    "type": "OAuthException",
    "code": 190,
    "error_subcode": 460,
    "error_user_title": "A title",
    "error_user_msg": "A message",
    "fbtrace_id": "EJplcsCHuLu"
  }
}

多筆錯誤訊息

Github Style

{
  "message": "Validation Failed",
  "errors": [
    {
      "resource": "Issue",
      "field": "title",
      "code": "missing_field"
    }
  ]
}

Twitter style

{
  "errors": [
    {
      "message": "Sorry, that page does not exist",
      "code": 34
    }
  ]
}

錯誤追蹤工具

Rollvar

支援的語言

實作方式

var rollbar = require("rollbar");

// rollbar.init("your-access-token");

rollbar.init("your-access-token", {
  environment: "staging",
  endpoint: "https://api.rollbar.com/api/1/"
});

rollbar.reportMessage("Hello world!");

問題

  • 為什麼需要錯誤追蹤工具?

延伸閱讀

results for ""

    No results matching ""