Appearance
06.07 Validation & Error Handling
📌 At a Glance
| รายการ | รายละเอียด |
|---|---|
| Topic | Validation & Error Handling |
| Difficulty | ⭐⭐⭐ Intermediate |
| Reading Time | 12 นาที |
| Target | Developer, System Integrator |
🎯 Learning Objectives
หลังจากศึกษาหัวข้อนี้แล้ว ผู้อ่านจะสามารถ
- เข้าใจการตรวจสอบข้อมูล (Validation) ของ Order Checking API
- เข้าใจการตอบกลับเมื่อเกิดข้อผิดพลาด
- จัดการ Error ของ Single Order และ Bulk Orders ได้อย่างถูกต้อง
- ออกแบบระบบ Retry และ Recovery ได้อย่างเหมาะสม
Overview
ก่อนสร้างรายการตรวจรับสินค้า SISAHYGO จะตรวจสอบความถูกต้องของข้อมูลทุก Order ที่ได้รับจาก Client
การตรวจสอบประกอบด้วย
- API Authentication
- Required Fields
- Master Data Validation
- Business Rules Validation
หากพบข้อผิดพลาด ระบบจะส่งรายละเอียดกลับในรูปแบบมาตรฐาน JSON เพื่อให้ Client สามารถตรวจสอบและแก้ไขข้อมูลก่อนส่งใหม่
Figure 6-7 Validation & Error Handling

Figure 6-7 แสดงขั้นตอนการตรวจสอบข้อมูลของ Order Checking API ตั้งแต่การตรวจสอบ API Key การตรวจสอบข้อมูลอ้างอิง การสร้างรายการ และการตอบกลับเมื่อพบข้อผิดพลาด
📌 Key Point
สำหรับ Bulk Orders ระบบจะตรวจสอบทุก Order ภายใน Request และรายงานผลของแต่ละ Order แยกจากกัน เพื่อให้ Client สามารถแก้ไขเฉพาะรายการที่ผิดพลาดได้
Validation Flow
text
Receive Request
│
▼
Authenticate API Key
│
▼
Validate JSON Format
│
▼
Validate Required Fields
│
▼
Validate Master Data
│
▼
Validate Business Rules
│
▼
Create Order
│
▼
Return ResponseRequired Field Validation
ตัวอย่างข้อมูลที่ระบบตรวจสอบ
| Field | Required |
|---|---|
| client_reference_no | ✅ |
| customer_rec_id | ✅ |
| order_header_date | ✅ |
| items | ✅ |
Master Data Validation
ระบบจะตรวจสอบข้อมูลอ้างอิงก่อนสร้างรายการ
| Data | Validation |
|---|---|
| Receiver | ต้องมีอยู่ในระบบ |
| Product | ต้องมีอยู่ในระบบ |
| Unit | ต้องมีอยู่ในระบบ |
หากไม่พบข้อมูล ระบบจะตอบกลับ Validation Error
Business Rule Validation
นอกจากการตรวจสอบข้อมูลพื้นฐาน ระบบยังตรวจสอบเงื่อนไขทางธุรกิจ เช่น
- จำนวนสินค้า ต้องมากกว่า 0
- รายการสินค้าอย่างน้อย 1 รายการ
client_reference_noต้องไม่ซ้ำ- ลูกค้าต้องมีสิทธิ์ใช้งาน API
Common HTTP Status Codes
| Status | Description |
|---|---|
| 201 Created | สร้างรายการสำเร็จ |
| 400 Bad Request | รูปแบบ Request ไม่ถูกต้อง |
| 401 Unauthorized | API Key ไม่ถูกต้อง |
| 422 Unprocessable Entity | Validation ไม่ผ่าน |
| 500 Internal Server Error | เกิดข้อผิดพลาดภายในระบบ |
Error Response Example
json
{
"message": "Validation failed.",
"errors": {
"customer_rec_id": [
"The selected receiver does not exist."
]
}
}Bulk Validation
สำหรับ Bulk Orders
text
Request
├── Order 1 ✔
├── Order 2 ✖ Validation Error
├── Order 3 ✔
└── Order 4 ✔ระบบจะส่งผลการตรวจสอบของแต่ละ Order กลับไปยัง Client
ทำให้สามารถแก้ไขเฉพาะ Order ที่ผิดพลาดได้
Recommended Client Strategy
เมื่อได้รับ Error
- ตรวจสอบ HTTP Status
- อ่านรายละเอียด Error Message
- แก้ไขข้อมูลที่ผิดพลาด
- ส่ง Request ใหม่เฉพาะรายการที่แก้ไขแล้ว
- บันทึก Log สำหรับการตรวจสอบย้อนหลัง
Best Practices
- ตรวจสอบ Master Data ก่อนส่ง Request
- ใช้
client_reference_noที่ไม่ซ้ำกัน - ตรวจสอบ HTTP Status ทุกครั้ง
- บันทึก Error Response ลง Log
- สำหรับ Bulk Orders ให้ Retry เฉพาะรายการที่ผิดพลาด
Related Sections
- 06.05 Response Structure
- 06.06 Response Fields
- Chapter 9 Error Handling & Response Codes
Summary
Order Checking API มีการตรวจสอบข้อมูลหลายระดับก่อนสร้างรายการ ได้แก่ Authentication, Required Fields, Master Data และ Business Rules หากพบข้อผิดพลาด ระบบจะตอบกลับรายละเอียดในรูปแบบมาตรฐาน JSON เพื่อให้ Client สามารถแก้ไขข้อมูลและส่งใหม่ได้อย่างถูกต้อง สำหรับ Bulk Orders ควรออกแบบระบบให้ประมวลผลและ Retry เฉพาะรายการที่ไม่ผ่านการตรวจสอบ เพื่อเพิ่มประสิทธิภาพและลดภาระของระบบ
Next Step
➡️ 06.08 Chapter Summary
