โครงห่อหุ้มข้อผิดพลาด JSON แบบเดียวกัน
กำหนดรูปแบบข้อผิดพลาดให้เป็นมาตรฐานสำหรับไคลเอนต์ API
โครงห่อหุ้มข้อผิดพลาด JSON แบบเดียวกัน เป็นบทเรียน Flask Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Flask Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Flask Academy มีบทเรียนทั้งหมด 4 บทเรียน
รูปแบบเดียวสำหรับข้อผิดพลาดทุกแบบ
รูปแบบข้อผิดพลาดที่หลากหลายทำให้ไคลเอนต์สับสน ซองข้อมูลที่เป็นแบบเดียวกันทำให้ความล้มเหลวทุกแบบมีหน้าตาเหมือนกัน แอปจึงแยกวิเคราะห์เพียงครั้งเดียวและเชื่อถือรูปแบบนั้นได้
ซองข้อมูลมีอะไรบ้าง
ซองข้อมูลที่ดีควรมีข้อความข้อผิดพลาดที่คงที่และรหัส ไคลเอนต์จะอ่านฟิลด์เหล่านี้แทนการคาดเดาจากข้อความดิบ
{
"error": "Not found",
"code": 404
}เพิ่มรหัสสำหรับเครื่อง
นอกจากข้อความแล้ว ให้ใส่สตริง code สั้น ๆ ด้วย ไคลเอนต์จะเลือกทำงานตามรหัสนี้ได้อย่างปลอดภัย แม้ภายหลังคุณจะเปลี่ยนถ้อยคำสำหรับผู้ใช้
{
"error": "Not found",
"code": "post_missing"
}สร้างในฟังก์ชันช่วย
ห่อการสร้างซองข้อมูลไว้ในฟังก์ชันช่วยเหลือขนาดเล็ก ตัวจัดการทุกตัวจะเรียกใช้ฟังก์ชันนี้ รูปแบบจึงไม่คลาดเคลื่อนจากกัน
def envelope(msg, code):
return jsonify(error=msg, code=code)นำไปใช้ในตัวจัดการ
แต่ละ errorhandler จะส่งคืนฟังก์ชันช่วยพร้อมสถานะ ตอนนี้รหัสสถานะและเนื้อหาจะสอดคล้องกันเสมอทั่วทั้ง API
return envelope("Not found", 404), 404ดักจับ HTTPException จากส่วนกลาง
ลงทะเบียนตัวจัดการหนึ่งตัวสำหรับ HTTPException เพื่อห่อข้อผิดพลาดในตัวทั้งหมด จุดเดียวนี้จะจัดรูปแบบ 404, 400 และข้อผิดพลาดอื่น ๆ
@app.errorhandler(HTTPException)
def wrap(e):
return envelope(e.description, e.code), e.codeใส่รายละเอียดของฟิลด์
สำหรับการตรวจสอบความถูกต้อง ให้เพิ่มฟิลด์ details ที่ระบุว่าอินพุตใดไม่ผ่าน ไคลเอนต์จึงเน้นฟิลด์ที่ผิดพลาดได้ตรงจุด
{
"error": "Invalid",
"details": {"email": "required"}
}ทำให้สถานะกับเนื้อหาสอดคล้องกัน
ตัวเลขในเนื้อหาควรตรงกับสถานะ HTTPจริง ความไม่ตรงกันจะทำให้ไคลเอนต์ที่เชื่อข้อมูลฝั่งใดฝั่งหนึ่งทำงานผิดพลาด
อย่าเปิดเผยข้อมูลภายใน
อย่าใส่ร่องรอยสแตกลงในซองข้อมูล ให้บันทึกไว้เป็นการภายใน และแสดงให้ไคลเอนต์เห็นเฉพาะข้อความทั่วไปที่ปลอดภัย
จัดทำเอกสารรูปแบบ
เขียนระบุรูปแบบซองข้อมูลไว้ เพื่อให้ทุกจุดปลายทางใช้รูปแบบเดียวกันสัญญาที่มีเอกสารกำกับช่วยให้ API ทั้งระบบคาดเดาได้
เหตุผลที่คุ้มค่า
รูปแบบข้อผิดพลาดเดียวที่คงที่ทำให้โค้ดไคลเอนต์ง่ายขึ้นและลดข้อผิดพลาด ทีมจึงพัฒนาบน API ที่คาดเดาได้โดยมีอุปสรรคน้อยลงมาก
ตรวจสอบอย่างรวดเร็ว
เหตุใดจึงควรให้ไคลเอนต์มีสตริงรหัสข้อผิดพลาดที่คงที่
สรุปทบทวน
คุณออกแบบซองข้อมูล JSON แบบเดียวที่มีข้อความ รหัส และรายละเอียด ห่อข้อผิดพลาดจากส่วนกลาง และทำให้สถานะกับเนื้อหาสอดคล้องกันได้แล้ว ทำสำเร็จแล้ว!
คำถามที่พบบ่อย
บทเรียน “โครงห่อหุ้มข้อผิดพลาด JSON แบบเดียวกัน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โครงห่อหุ้มข้อผิดพลาด JSON แบบเดียวกัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Flask Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Flask Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “โครงห่อหุ้มข้อผิดพลาด JSON แบบเดียวกัน”
กำหนดรูปแบบข้อผิดพลาดให้เป็นมาตรฐานสำหรับไคลเอนต์ API คุณปฏิบัติ Flask Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Flask Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Flask Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “โครงห่อหุ้มข้อผิดพลาด JSON แบบเดียวกัน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Flask Academy นี้ได้ไหม
ได้ บทเรียน Flask Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- abort และรหัสข้อผิดพลาด HTTP
- ลงทะเบียนฟังก์ชัน errorhandler
- ส่งคลาสข้อยกเว้นแบบกำหนดเอง
- โครงห่อหุ้มข้อผิดพลาด JSON แบบเดียวกัน