ASIC Public Notices API: ดึงข้อมูลล้มละลายธุรกิจออสเตรเลียในรูปแบบ JSON
นักพัฒนาสร้าง API ทางเลือกสำหรับประกาศสาธารณะของ ASIC รองรับการค้นหาด้วยเลข ACN หรือ ABN เพื่อติดตามสถานะล้มละลายของธุรกิจในออสเตรเลียได้สะดวกยิ่งขึ้น

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- นักพัฒนาสร้าง API ดึงข้อมูลประกาศสาธารณะ ASIC ในรูปแบบ JSON
- ระบบช่วยกรองข้อมูลการล้มละลายที่แท้จริงจากประกาศถอนทะเบียนทั่วไป
- รองรับการค้นหาผ่านหมายเลข ACN และ ABN รวมถึงการจับคู่บัญชีลูกหนี้
การทำธุรกิจหรือสร้างแอปพลิเคชันที่เกี่ยวข้องกับภาคธุรกิจในประเทศออสเตรเลีย มักจะหนีไม่พ้นความจำเป็นในการตรวจสอบสถานะทางการเงินของคู่ค้า ลูกค้า หรือผู้เช่า ว่ามีความเสี่ยงที่จะล้มละลายหรือประสบปัญหาทางธุรกิจหรือไม่ โดยหน่วยงานกำกับดูแลอย่าง ASIC (Australian Securities and Investments Commission) มีการเผยแพร่ข้อมูลประกาศสาธารณะเหล่านี้บนเว็บไซต์ Published Notices อยู่แล้ว ซึ่งเป็นข้อมูลที่เปิดให้สาธารณชนเข้าถึงได้ฟรีและมีการอัปเดตข้อมูลภายในเวลาประมาณหนึ่งวัน
อย่างไรก็ตาม ปัญหาสำคัญคือหน่วยงาน ASIC ไม่มีบริการ API อย่างเป็นทางการ ไม่มีฟอร์แมต JSON, RSS หรือไฟล์ดาวน์โหลดขนาดใหญ่ให้ใช้งาน นักพัฒนาจึงต้องเผชิญกับข้อจำกัดของเว็บไซต์ต้นทางที่เป็นฟอร์ม ASP.NET แบบเก่า ซึ่งมีการโพสต์ข้อมูลหน้าเว็บทั้งหมดรวมถึง BLOB ของ __VIEWSTATE ขนาด 23 กิโลไบต์ทุกครั้งที่มีการเปลี่ยนหน้าหรือส่งตัวกรอง นอกจากนี้ ระบบยังมีการป้องกันบอทด้วย AWS WAF ทำให้คำขอจากสคริปต์ทั่วไปถูกปฏิเสธด้วยรหัส HTTP 202 ทันที ในขณะที่เบราว์เซอร์ปกติสามารถเข้าถึงได้ตามปกติ

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
เพื่อแก้ปัญหานี้ นักพัฒนาจึงได้สร้าง API ทางเลือกขึ้นมา โดยรวบรวมข้อมูลประกาศย้อนหลัง 365 วัน ซึ่งมีปริมาณรวมประมาณ 312,000 รายการ แต่ข้อมูลส่วนใหญ่ถึง 80% เป็นเพียงประกาศเสนอถอนทะเบียน (proposed deregistrations) ที่มักประกาศออกมาเป็นชุดครั้งละสองถึงสามพันรายการ ทำให้มีข้อมูลเหตุการณ์ล้มละลายที่แท้จริงประมาณ 30,000 รายการเท่านั้น API ตัวนี้จึงช่วยคัดกรองเฉพาะข้อมูลที่มีความสำคัญมาให้อย่างเป็นระเบียบในรูปแบบ JSON พร้อมระบุลิงก์ต้นทางไปยังเว็บไซต์ของ ASIC เสมอ เพื่อให้ผู้ใช้งานสามารถตรวจสอบย้อนกลับได้ทุกประกาศ
จุดเด่นอีกประการคือระบบการจับคู่ตัวตน เนื่องจากระบบธุรกิจทั่วไปมักจัดเก็บหมายเลข ABN ของบริษัท แต่ประกาศของ ASIC ระบุเฉพาะหมายเลข ACN API นี้จึงเก็บบันทึกชุดข้อมูลบริษัทจาก data.gov.au ที่มีการอัปเดตทุกสัปดาห์ซึ่งมีจำนวนราว 4.4 ล้านแถว เพื่อให้ผู้ใช้งานสามารถป้อนตัวระบุประเภทใดก็ได้แล้วระบบจะทำการแปลงให้ถูกต้อง รวมถึงรองรับการส่งชุดข้อมูลบัญชีลูกหนี้สูงสุดถึง 50,000 รายการผ่านคำขอ POST เพื่อตรวจสอบว่ามีรายใดมีประกาศล้มละลายเกิดขึ้นบ้างในคราวเดียว
การพัฒนา API เพื่อดึงข้อมูลจากเว็บไซต์ราชการที่ไม่มีอินเทอร์เฟซรองรับสะท้อนให้เห็นถึงความท้าทายในงาน Data Engineering โดยเฉพาะการจัดการกับลำดับเวลาของข้อมูลที่อาจมาไม่เรียงตามเวลาจริง การใช้ระบบ Monotonic Sequence แทน Timestamp จึงเป็นแนวทางทางเทคนิคที่ช่วยป้องกันการตกหล่นของข้อมูลย้อนหลังได้อย่างมีประสิทธิภาพ
ระบบยังมีฟังก์ชันการติดตาม (Watch) รายชื่อบริษัทเพื่อรับการแจ้งเตือนผ่าน POST เมื่อบริษัทนั้นปรากฏในประกาศใหม่ รวมถึงการจัดการข้อผิดพลาดที่มีรหัสและข้อความที่ชัดเจน เช่น unauthorized หรือ quota_exceeded โดยเอกสารคู่มือการใช้งานทั้งหมดเผยแพร่ที่ insolvencyalerts.com.au/docs และมีช่วงทดลองใช้งานฟรี 7 วันให้ผู้สนใจได้ทดสอบระบบ
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น