developer.pamarin.com

ข้อผิดพลาด (Error)

การจัดการข้อผิดพลาดต่าง ๆ ในระบบ

ตัวอย่าง

https://auth.pamarin.com/oauth/v1/token

Format

ทุก ๆ Service จะแสดง error โดยมีรูปแบบดังต่อไปนี้

{
  "error": "unauthorized",
  "error_status": 401,
  "error_description": "Require access token in http header \"Authorization\" : \"bearer $TOKEN\"",
  "error_at": 1560939554466,
  "error_uri": "https://developer.pamarin.com/document/error/",
  "error_trace_id": "31db055ecac97230",
  "error_fields": [],
  "error_data" : {},
  "error_on" : "0.1",
  "state": null
}

รายะเอียด (Details)

error

ประเภท error ของระบบ

เช่น

error_status

http status error code

เช่น

Reference : https://developer.mozilla.org/th/docs/Web/HTTP/Status

error_description

message ที่อธิบายว่า error นี้เกิดจากอะไร

เช่น

error_at

เวลา timestamp ที่เกิด error

error_uri

url เอกสารสำหรับอธิบาย error

เช่น

error_trace_id

รหัส (trace_id) สำหรับผู้ดูและระบบ (Admin) หรือผู้พัฒนา ไว้ค้นหาตำแหน่งของ error ที่เกิดขึ้นในระบบ

เช่น

error_fields

ใช้สำหรับกรณี validate input form แล้วเกิด error ขึ้นที่ field ใด field หนึ่ง

ตัวอย่าง

{
  "error": "invalid_request",
  "error_trace_id": "4afed893447f585c",
  "error_description": "Validate fail",
  "error_status": 400,
  "error_at": 1560957259332,
  "error_uri": "https://developer.pamarin.com/document/error/",
  "error_fields": [
    {
      "code": "available_email", 
      "description": "not available",
      "name": "email" 
    },
    {
      "code": "length",
      "description": "at least 8 characters",
      "name": "confirmPassword"
    },
    {
      "code": "password_equals_confirm_password",
      "description": "password not equals confirm password",
      "name": "confirmPassword"
    }
  ], 
  "error_data" : {},
  "error_on" : "0.1",
  "state": "8wC04d/1cW6bE5M="
}

error_data

data ที่ต้องการส่งมาให้ front end ใช้สำหรับการแสดงผล

ตัวอย่าง

{
  "error": "duplicate_code",
  "error_status": 409,
  "error_description": "duplicate code \"1234\"",
  "error_at": 1575360940699,
  "error_uri": "https://developer.pamarin.com/document/error/",
  "error_trace_id": "2B575C06",
  "error_on": "0.2",
  "error_fields": [],
  "error_data": {
    "code" : "1234"
  },
  "state": null
}

error_on

ตัวระบุว่า error เกิดขึ้นที่ไหน อาจจะเป็น ip ของเครื่องที่ run service นั้น ๆ

เช่น

State

validation state ของ client เพื่อใช้ป้องกัน csrf ซึ่ง server จะส่งกลับไปด้วยกรณีเกิด error (ถ้า client ส่ง parameter นี้มา) ส่วนมากจะใช้กับกรณีการ authen ด้วย OAuth

เช่น