หลักสูตรความผิดพลาด 101
10 โมดูล
5 สัปดาห์ที่ผ่านมา

คนตัดไม้ที่กำหนดเอง

คลิกเพื่อคัดลอก

การสร้างเครื่องบันทึกของคุณเอง


ในกรณีที่เครื่องมือด้านบนสำหรับค้นหาข้อผิดพลาดไม่เพียงพอ คุณสามารถสร้างตัวบันทึกของคุณเองและใช้ความต้องการทั้งหมดของคุณในนั้น ตัวอย่างเช่น ลองสร้างตัวบันทึกที่จะเพิ่มข้อมูลเกี่ยวกับผู้ใช้ที่เรียกใช้เหตุการณ์นี้และระดับการเข้าถึงนอกเหนือจากคำอธิบายทั่วไปของเหตุการณ์

แบบจำลองข้อมูล Logger

ในการทำเช่นนี้ เริ่มจากการสร้างแบบจำลองในฐานข้อมูล เราต้องการแบบจำลองง่ายๆ โดยมีฟิลด์บังคับสามฟิลด์

  • info (text) - ข้อมูลทั่วไปเกี่ยวกับเหตุการณ์
  • user (integer) - รหัสผู้ใช้
  • access (array string) - กลุ่มผู้ใช้ (อาจมีหลายกลุ่ม)


กระบวนการทางธุรกิจของ Logger

หลังจากนั้นเราจะสร้างกระบวนการทางธุรกิจเพื่อเขียนบันทึกลงในฐานข้อมูล หน้าที่ของมันคือรับข้อมูลเกี่ยวกับเหตุการณ์ใด ๆ เสริมด้วยข้อมูลเกี่ยวกับผู้ใช้ และบันทึกผลลัพธ์สุดท้ายในฐานข้อมูล

หากต้องการรับข้อมูลเกี่ยวกับผู้ใช้ ให้ใช้ Auth: Get current user โปรดทราบว่าจะสามารถแสดงผลลัพธ์เป็นรุ่นผู้ใช้ได้ก็ต่อเมื่อมีการเปิดใช้งาน Middleware Token Auth บนปลายทางที่เริ่มต้นการดำเนินการ


เราใช้ Expand User เพื่อขยายผลลัพธ์และรับฟิลด์ที่จำเป็น ในกรณีของเรา ได้แก่ ID , Login และ Groups การใช้สองตัวแรกนั้นค่อนข้างซ้ำซาก คุณเพียงแค่ต้องแปลงการ Login จากรูปแบบเมลเป็น String มาตรฐาน ( To String block)

ในกรณีของกลุ่มผู้ใช้ สถานการณ์จะค่อนข้างซับซ้อนกว่า จัดเก็บในรูปแบบ Enum นี่เป็นประเภทที่ระบุซึ่งเก็บเฉพาะรายการตัวระบุในฐานข้อมูล ไม่ใช่ค่าข้อความ ในกรณีของเรา ค่า 1 ตรงกับกลุ่มผู้ดูแลระบบ ( Admins ) และค่า 2 ตรงกับกลุ่มผู้ใช้ ( Users )

งานของเราคือถอดรหัสตัวระบุนี้และเขียนผลลัพธ์ในรูปแบบของข้อมูลที่สะดวก สำหรับสิ่งนี้ คุณต้อง:

  • ประกาศตัวแปรที่จะเขียนข้อมูลข้อความเกี่ยวกับกลุ่มผู้ใช้ ลองใช้ String Array และ Set Variable บล็อก
  • เริ่มลูปด้วยบล็อก For each loop จะได้รับอาร์เรย์ของกลุ่มผู้ใช้ จากนั้นในการวนซ้ำแต่ละครั้ง ให้แปลงกลุ่มถัดไปเป็นค่าข้อความและเพิ่มลงในอาร์เรย์
  • ใช้บล็อก Switch ตรวจสอบกลุ่มผู้ใช้ และกำหนดกระบวนการต่อไป ขึ้นอยู่กับผลลัพธ์
  • ใช้บล็อก String และ Set Variable เก็บค่าที่ต้องการของกลุ่มผู้ใช้ในตัวแปร
  • ใช้บล็อก Append Array และ Set Variable เพื่อเพิ่มผลลัพธ์ไปยังอาร์เรย์และจัดเก็บไว้ในตัวแปรที่ประกาศก่อนเริ่มลูป


เมื่อเสร็จสิ้นการวนซ้ำ คุณควรใช้บล็อก Concat Strings (Multiple) เพื่อสร้างสตริงสุดท้ายจากข้อมูลที่กระจัดกระจาย ซึ่งจะถูกแปลงเป็น Text และเขียนลงในบันทึก


สิ่งสุดท้ายที่ต้องทำคือสร้างโมเดล log และเขียนลงในฐานข้อมูล


BP ที่ได้ควรมีลักษณะดังนี้:


จุดสิ้นสุดของ Logger

กระบวนการทางธุรกิจพร้อมแล้ว ตอนนี้เราต้องสร้างจุดสิ้นสุดสำหรับมัน ในการทำเช่นนี้ เราจะแทนที่กระบวนการทางธุรกิจของระบบของจุดสิ้นสุด POST /log/ ด้วยกระบวนการทางธุรกิจที่เพิ่งสร้างขึ้น


ตอนนี้บันทึกของเราเองพร้อมที่จะไป คุณสามารถกลับไปที่จุดเริ่มต้นของโมดูล ไปที่กระบวนการทางธุรกิจของ Basic functions และแทนที่บันทึกมาตรฐานด้วยบันทึกที่คุณสร้างเอง


ตอนนี้ ทุกครั้งที่เริ่มการคำนวณ บันทึกพิเศษจะไม่เพียงบันทึกข้อมูลเกี่ยวกับข้อเท็จจริงของเหตุการณ์นี้เท่านั้น แต่ยังบันทึกเกี่ยวกับเหตุการณ์ที่ผู้ใช้ทำอีกด้วย เราสามารถตรวจสอบผลลัพธ์ได้ใน Swagger


เยี่ยมมาก บันทึกของเราใช้งานได้จริง ขณะนี้มีข้อมูลเกี่ยวกับกิจกรรม การเข้าสู่ระบบของผู้ใช้ และสิทธิ์การเข้าถึงของผู้ใช้

ข้อผิดพลาดที่เป็นไปได้และการดำเนินการที่แนะนำ

ด้วยเหตุนี้ เราจึงจัดโครงสร้างข้อผิดพลาดและการดำเนินการต่างๆ ที่เป็นไปได้เพื่อแก้ไข

  • ข้อผิดพลาดในกระบวนการทางธุรกิจเอง ขอแนะนำให้ใช้บันทึกสำหรับการยืนยันทีละขั้นตอน ดังนั้น คุณสามารถตรวจสอบความเป็นจริงของการเปิดตัวบล็อกของกระบวนการทางธุรกิจและพารามิเตอร์ทั้งหมดที่บล็อกนั้นใช้ ทั้งที่อินพุตและเอาต์พุต
  • ข้อผิดพลาดในการส่งคำขอไปยังเซิร์ฟเวอร์ ในการทำเช่นนี้ ให้ใช้ Developer Tools ในเบราว์เซอร์ คุณสามารถตรวจสอบข้อเท็จจริงที่ว่าคำขอถูกส่ง แยกวิเคราะห์โครงสร้าง และดูการตอบกลับที่ได้รับ
  • คำขอมีรูปแบบไม่ถูกต้อง ขอแนะนำให้ใช้ Swagger สำหรับการทดสอบอย่างละเอียด ตรวจสอบตัวเลือกข้อความค้นหาต่างๆ และชุดค่าผสมของพารามิเตอร์
  • ผลลัพธ์ของคำขอไม่ได้แยกวิเคราะห์อย่างถูกต้อง มันเกิดขึ้นที่เรากำลังรอผลที่ไม่ควรจะเป็น ตัวอย่างเช่น เราเพิ่มข้อมูลลงในฐานข้อมูลแต่ไม่ได้อัปเดตในตารางที่แสดงข้อมูลนี้ โปรดจำไว้ว่าแต่ละองค์ประกอบต้องมีกระบวนการทางธุรกิจที่สอดคล้องกัน และตรวจสอบให้แน่ใจว่ากระบวนการนี้ได้รับการกำหนดค่าอย่างถูกต้อง
Was this article helpful?
ยังคงมองหาคำตอบ?