ทางธนาคารแห่งประเทศไทย หรือ Bank Of Thailand (BOT)
ได้เปิด BOT APIs ให้บริการข้อมูลต่าง ๆ ที่น่าสนใจดังนี้
- อัตราแลกเปลี่ยน จำนวน 8 APIs
- อัตราดอกเบี้ย จำนวน 12 APIs
- ผลการประมูลตราสารหนี้ จำนวน 1 API
ดังนั้นมาลองใช้งานกันหน่อย
ว่าเป็นอย่างไรบ้าง ?
ใช้งานยากหรือง่ายอย่างไร ?
ในมุมมองของนักพัฒนาคนหนึ่ง
รายละเอียดทั่วไปของ API
BOT APIs เป็น REST APIs
โดยข้อมูลอยู่ในรูปแบบ JSON (JavaScript Object Notation)
ในแต่ละ API นั้นมีเอกสารอธิบายชัดเจน ตัวอย่างเช่น
- คำอธิบาย
- ความถี่ในการเปลี่ยนแปลงข้อมูล
- เวลาในการเผยแพร่
- ที่มาของข้อมูล
- รายละเอียดเพิ่มเติม
- API endpoint
- Parameter ต่าง ๆ ที่จำเป็น ทั้งชื่อ ชนิดข้อมูล และ ตัวอย่าง
- ข้อมูล parameter ที่จะได้รับ ฟังดูแล้วแปลก ๆ น่าจะเป็นข้อมูลที่ได้รับน่าจะเข้าใจง่ายกว่า !!
- ตัวอย่างข้อมูล ในส่วนนี้ง่ายยากมาก น่าจะจัดรูปแบบให้ง่ายง่าย ๆ หน่อย
- มีตัวอย่างการเขียน code ใช้งานทั้ง JavaScript และ Python แต่น่าจะใส่ format code สวย ๆ หน่อยนะ
ในส่วนนี้นักพัฒนาก็เขียน library ใช้งานสำหรับภาษาต่าง ๆ กันไหม ?
ตัวอย่างของข้อมูลที่ได้จาก API อัตราแลกเปลี่ยนถัวเฉลี่ยถ่วงน้ำหนักระหว่างธนาคาร (รายวัน)
มาดูโครงสร้างของข้อมูลกันหน่อย
ซึ่งดูแล้วข้อมูลไม่จำเป็นเยอะน่าดู
แต่คงเป็นเรื่องความน่าเชื่อถือของข้อมูล !!
APIs ต่าง ๆ จะส่ง response code เป็น 200 กลับมาเสมอ
โดยผู้ใช้บริการสามารถตรวจสอบผลการทำงาน
ผ่านข้อมูลใน result.success ว่าเป็น true หรือ false
- true คือ ผลการทำงานถูกต้อง
- false คือ ผลการทำงานไม่ถูกต้อง เช่น parameter ที่ส่งไปไม่ถูกต้อง
จากตัวอย่างข้างต้น เป็นผลการทำงานที่ถูกต้อง
ดังนั้นข้อมูลของอัตราแลกเปลี่ยนจะอยู่ใน result.data
ยังไม่พอในข้อมูลยังแบ่งออกเป็น 2 กลุ่มคือ
- data_header สำหรับคำอธิบายต่าง ๆ เช่นแหล่งที่มา และ วันเปลี่ยนแปลงล่าสุด
- data_detail สำหรับข้อมูลจริง ๆ
สิ่งที่น่าสนใจคือ ข้อมูลที่มีจุดทศนิยมจะมีจำนวน 7 หลักทั้งหมด !!
ในส่วนการทำงานผิดพลาด
จะมีผลการทำงานมาอยู่ที่ result.error แทน
ดังตัวอย่างใส่ข้อมูลวันที่ของ start_period ผิดรูปแบบที่กำหนด
โดยในส่วนของ error code ไม่มีอธิบายไว้ในหน้า website
- ถ้าไม่ใส่ api-key หรือใส่ผิด ใน HTTP Header จะไม่มี error code
- es001 คือ ไม่ใส่ข้อมูล เช่น Parameter: start_period must not be null
- es002 คือ ข้อมูลวันเริ่นต้นอยู่หลังวันสิ้นสุด เช่น Parameter start_period must not be greater than end_period
- es003 คือ รูปแบบข้อมูลผิด เช่น Parameter: start_period format must be yyyy-mm-dd
สุดท้ายแล้ว BOT API เป็นแหล่งข้อมูลที่น่าสนใจ
สามารถนำไปใช้ประโยชน์กันได้ดีเลยและน่าเชื่อถือได้
ปล. อย่าลืมอ่านเงื่อนไขการใช้บริการด้วยนะครับ
ยกตัวอย่างเช่น
- ธนาคารแห่งประเทศไทยจะไม่รับผิดชอบต่อ ความถูกต้อง และความล่าช้าของข้อมูล
- ยกเลิกการให้บริการข้อมูล BOT API ของธนาคารแห่งประเทศไทยแก่ผู้ใช้บริการเมื่อใดก็ได้
- ผู้ใช้บริการยอมรับและตระหนักดีว่าธนาคารแห่งประเทศไทยจะไม่รับผิดชอบในความเสียหายใด ๆ ที่เกิดขึ้นหรืออาจเกิดขึ้นกับผู้ใช้บริการ จากบริการข้อมูล BOT API ของธนาคารแห่งประเทศไทย ไม่ว่าโดยเหตุประการใด
Reference Websites
https://iapi.bot.or.th/Developer?lang=th