รหัสข้อผิดพลาด (Error codes)
ทุก response ของ Open API จะมี field status ครอบไว้เสมอ
(ok หรือ error) เพื่อให้ฝั่งที่เรียกแยกสำเร็จ/ผิดพลาดได้ง่าย
รูปแบบ response
สำเร็จ
{
"status": "ok",
"data": { ... }
}
ผิดพลาด
{
"status": "error",
"error": {
"code": "not_found",
"message": "Not found, or it isn't owned by your account.",
"errorId": null
}
}
status—okเมื่อสำเร็จ (ข้อมูลอยู่ในdata) หรือerrorเมื่อผิดพลาด (รายละเอียดอยู่ในerror)error.code— รหัสคงที่สำหรับให้โปรแกรมเช็ก (ดูความหมายในตารางด้านล่าง)error.message— ข้อความอธิบายสำหรับคนerror.errorId— รหัสอ้างอิงเฉพาะครั้ง (มีเฉพาะ error ฝั่งเซิร์ฟเวอร์500); ปกติเป็นnull
ความหมายของแต่ละ code
| code | HTTP | หมายความว่า | เกิดเมื่อ |
|---|---|---|---|
unauthorized |
401 | คีย์ไม่ถูกต้อง / หาย / ถูกปิด | ไม่ได้ส่ง header X-Api-Key, คีย์ผิด, หรือคีย์ถูกปิดใช้งานที่ /me/api |
not_found |
404 | ไม่พบข้อมูล หรือไม่ใช่ของบัญชีคุณ จึงเข้าถึงไม่ได้ | เรียกทรัพยากรที่ไม่มีอยู่ หรือเป็นของผู้ใช้คนอื่น (จงใจไม่บอกต่างกัน เพื่อกันการเดา ID ของคนอื่น) |
bad_cursor |
400 | ค่า cursor ไม่ถูกต้อง | ส่งพารามิเตอร์ after ที่ไม่ใช่ค่า nextCursor ที่ระบบให้มาจาก response ก่อนหน้า |
rate_limited |
429 | เรียกถี่เกินลิมิต | เกิน 120 คำขอ/นาที ต่อคีย์ — รอแล้วลองใหม่ ดูจำนวนวินาทีที่ header Retry-After |
internal_error |
500 | ข้อผิดพลาดภายในระบบ (ไม่คาดคิด) | เหตุไม่คาดคิดฝั่งเซิร์ฟเวอร์ — response จะมี errorId มาด้วย ให้แจ้งผู้ดูแลพร้อม errorId นี้เพื่อให้ตามรอยได้ |
errorId คืออะไร
เมื่อเกิดข้อผิดพลาดที่ไม่คาดคิดฝั่งเซิร์ฟเวอร์ (internal_error / HTTP 500)
ระบบจะสร้าง errorId เฉพาะของครั้งนั้น แล้วส่งกลับมาใน response พร้อมบันทึกไว้ในระบบ log ของเซิร์ฟเวอร์
— เวลามีปัญหา ให้ แจ้งผู้ดูแลพร้อม errorId นี้ เพื่อให้ตามหา log ของเหตุการณ์นั้นได้ตรงตัว
รูปแบบ: E-yyyyMMddHHmmss-xxxxxx (เวลา + เลขสุ่ม) เช่น
{
"status": "error",
"error": {
"code": "internal_error",
"message": "An unexpected server error occurred. Please retry, or contact support with this errorId.",
"errorId": "E-20260617143012-a1b2c3"
}
}
ติดปัญหาการใช้งาน หรืออยากสอบถาม?
ทักได้ที่ LINE @happym หรือโทร 085-926-9797 (คุณพล) ได้เลย