0Pricing
Flask Academy · บทเรียน

โครงห่อหุ้มข้อผิดพลาด 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. abort และรหัสข้อผิดพลาด HTTP
  2. ลงทะเบียนฟังก์ชัน errorhandler
  3. ส่งคลาสข้อยกเว้นแบบกำหนดเอง
  4. โครงห่อหุ้มข้อผิดพลาด JSON แบบเดียวกัน
← กลับไปที่ Flask Academy