Appearance
09.02 HTTP Status Codes
📌 At a Glance
| รายการ | รายละเอียด |
|---|---|
| Topic | HTTP Status Codes |
| Difficulty | ⭐ Beginner |
| Reading Time | 8 นาที |
| Target | Developer, System Integrator |
| Related APIs | All APIs |
🎯 Learning Objectives
หลังจากศึกษาหัวข้อนี้แล้ว ผู้อ่านจะสามารถ
- เข้าใจความหมายของ HTTP Status Codes ที่ใช้ใน SISAHYGO API
- แยกแยะการตอบกลับที่สำเร็จและข้อผิดพลาดได้
- ออกแบบการจัดการ Response ใน Client System ได้อย่างเหมาะสม
Overview
SISAHYGO API ใช้มาตรฐาน HTTP Status Codes เพื่อระบุผลลัพธ์ของการประมวลผลแต่ละคำขอ
Client System ควรตรวจสอบ HTTP Status Code ทุกครั้งก่อนอ่านข้อมูลใน Response Body เพื่อให้สามารถดำเนินการต่อหรือจัดการข้อผิดพลาดได้อย่างถูกต้อง
Figure 9-2 HTTP Status Codes

Figure 9-2 แสดงการจัดกลุ่ม HTTP Status Codes ที่ใช้ใน SISAHYGO API พร้อมแนวทางการจัดการในฝั่ง Client System
HTTP Status Categories
| Category | Range | Description |
|---|---|---|
| Success | 2xx | การประมวลผลสำเร็จ |
| Client Error | 4xx | คำขอไม่ถูกต้องหรือไม่ได้รับอนุญาต |
| Server Error | 5xx | ข้อผิดพลาดภายในระบบ |
Success Responses
200 OK
ใช้เมื่อการเรียก API สำเร็จและส่งข้อมูลกลับ
ตัวอย่าง
http
HTTP/1.1 200 OKใช้กับ
- GET /products
- GET /shipments
- GET /order-rejections
- GET /receivers
- GET /units
201 Created
ใช้เมื่อสร้างข้อมูลใหม่สำเร็จ
ตัวอย่าง
http
HTTP/1.1 201 Createdใช้กับ
- POST /order-checkings
Client Error Responses
400 Bad Request
Request ไม่ถูกต้อง เช่น รูปแบบ JSON ไม่สมบูรณ์ หรือส่งพารามิเตอร์ไม่ถูกต้อง
http
HTTP/1.1 400 Bad Requestแนวทาง
- ตรวจสอบรูปแบบ Request
- ตรวจสอบ Header และ Query Parameters
401 Unauthorized
API Key ไม่ถูกต้อง หรือไม่ได้ส่ง API Key
http
HTTP/1.1 401 Unauthorizedแนวทาง
- ตรวจสอบ Header
X-API-Key - ตรวจสอบว่า API Key ยังใช้งานได้
403 Forbidden
API Key ถูกต้อง แต่ไม่มีสิทธิ์ใช้งาน Resource นั้น
http
HTTP/1.1 403 Forbiddenแนวทาง
- ตรวจสอบสิทธิ์ของ API Client
- ติดต่อผู้ดูแลระบบหากต้องการสิทธิ์เพิ่มเติม
404 Not Found
ไม่พบ Resource ที่ร้องขอ
http
HTTP/1.1 404 Not Foundตัวอย่าง
- ไม่พบ
client_reference_no - ไม่พบ Order ID
- Endpoint ไม่ถูกต้อง
422 Unprocessable Entity
ข้อมูลผ่านการตรวจสอบรูปแบบ แต่ไม่ผ่าน Validation ของระบบ
http
HTTP/1.1 422 Unprocessable Entityตัวอย่าง
- ไม่ส่ง Required Fields
product_idไม่ถูกต้องcustomer_rec_idไม่พบamountมีค่าไม่ถูกต้อง
แนวทาง
- แก้ไขข้อมูลก่อนส่งใหม่
- ไม่ควร Retry โดยไม่แก้ไขข้อมูล
429 Too Many Requests
Client ส่งคำขอถี่เกินกว่าที่ระบบกำหนด
http
HTTP/1.1 429 Too Many Requestsหมายเหตุ: ปัจจุบัน SISAHYGO API ยังไม่ได้เปิดใช้งานการจำกัดอัตราการเรียก (Rate Limiting) แต่ได้สงวน Status Code นี้ไว้สำหรับการรองรับในอนาคต
แนวทาง
- ลดความถี่ในการเรียก API
- ใช้การหน่วงเวลา (Backoff) ก่อนลองใหม่
Server Error Responses
500 Internal Server Error
เกิดข้อผิดพลาดภายในระบบ
http
HTTP/1.1 500 Internal Server Errorแนวทาง
- บันทึก Error Log
- ลองใหม่ภายหลัง
- ติดต่อทีมสนับสนุนหากปัญหายังคงเกิดขึ้น
503 Service Unavailable
ระบบไม่พร้อมให้บริการชั่วคราว
http
HTTP/1.1 503 Service Unavailableแนวทาง
- รอสักระยะแล้วลองใหม่
- ใช้ Retry Strategy ที่เหมาะสม
Recommended Client Actions
| HTTP Status | Recommended Action |
|---|---|
| 200 | ประมวลผลข้อมูลต่อ |
| 201 | บันทึกข้อมูลที่สร้างใหม่ |
| 400 | ตรวจสอบ Request |
| 401 | ตรวจสอบ API Key |
| 403 | ตรวจสอบสิทธิ์การใช้งาน |
| 404 | ตรวจสอบ Endpoint หรือ Resource |
| 422 | แก้ไขข้อมูลก่อนส่งใหม่ |
| 429 | ลดความถี่ในการเรียก API |
| 500 | Retry ภายหลังและบันทึก Log |
| 503 | Retry เมื่อระบบพร้อมให้บริการ |
Error Handling Flow
text
Receive HTTP Response
│
▼
Check Status Code
│
├────────► 2xx
│ │
│ ▼
│ Process Response
│
▼
4xx / 5xx
│
▼
Read Error Message
│
▼
Handle Error
│
▼
Retry or Correct RequestBest Practices
- ตรวจสอบ HTTP Status Code ก่อนอ่านข้อมูลใน Response Body
- แยกการจัดการ Error ตามประเภทของ Status Code
- ไม่ Retry ทันทีสำหรับ Validation Errors (
422) - บันทึก HTTP Status Code และ Error Response เพื่อช่วยในการวิเคราะห์ปัญหา
Related Sections
- 09.03 Standard Error Response Format
- 09.04 Authentication Errors
- 09.05 Validation Errors
Summary
HTTP Status Codes เป็นกลไกมาตรฐานที่ SISAHYGO API ใช้ในการสื่อสารผลลัพธ์ของการประมวลผล การทำความเข้าใจความหมายของแต่ละ Status Code และการออกแบบ Client System ให้ตอบสนองต่อสถานการณ์ต่าง ๆ ได้อย่างเหมาะสม จะช่วยเพิ่มความเสถียรของระบบ ลดข้อผิดพลาดในการเชื่อมต่อ และยกระดับประสบการณ์ของผู้ใช้งาน
Next Step
➡️ 09.03 Standard Error Response Format
