ข้อมูลเบื้องต้นเกี่ยวกับ API, REST API และตัวอย่างการใช้งาน

แก้ไขเมื่อ วันศุกร์, 9 สิงหาคม เมื่อ 10:51 AM

API คืออะไร


API ย่อมาจากคำว่า Application Programming Interface คือ กลไกที่เชื่อมให้สองระบบสามารถสื่อสารถึงกันได้ (การส่งคำขอและการตอบกลับ) เช่น การสื่อสารระหว่างผู้ใช้บริการ (Customer) และผู้ให้บริการ (ระบบ Server ของบิทคับ) 


โดยลูกค้าที่จะสามารถใช้งานระบบ API ของบิทคับ เอ็กซ์เชนจ์ได้นั้น ต้องมีบัญชีที่ผ่านการยืนยันตัวตน (KYC) กับบริษัทแล้วเท่านั้น


นอกจากนี้ ข้อมูลเกี่ยวกับการใช้งาน API เบื้องต้นที่ผู้ใช้งานควรทราบ มีดังนี้

  • ห้ามให้คนอื่นรับทราบข้อมูล API Key และ API Secret เนื่องจากจะทำให้ผู้อื่นสามารถเอาไปดูข้อมูลบัญชีและออร์เดอร์ทั้งหมดได้ หรือทำรายการซื้อขายและถอนสินทรัพย์ได้หากมีการเปิด Permission ไว้

  • ระยะหน่วงในการส่งข้อมูลระหว่าง API ตั้งแต่ข้อมูลออกจากลูกค้าจนมาถึงบริษัท และกลับไปหาลูกค้าอยู่ที่ประมาณ 100-500 millisecond (ms) หรือ microsecond [1000 ms = 1 s]


API Key และ API Secret

  • API Key คือ รหัส ID หรือชื่อผู้ใช้ส่วนบุคคล ที่ช่วยให้ระบบสามารถจำแนก (identify) ผู้ใช้ได้ เปรียบเสมือน Username ของลูกค้าเวลาเข้าใช้งานระบบออนไลน์ต่าง ๆ

  • API Secret คือ สิ่งที่ใช้ในการยืนยันความเป็นเจ้าของ API Key แต่ละอัน เปรียบได้กับ Password


เริ่มต้นใช้งาน API

  1. สร้าง API Key ที่หน้า API Management

  2. กดปุ่ม Create API Key > ตั้งชื่อ Key > กรอกรหัสยืนยันความปลอดภัย (Authentication code) ให้ถูกต้อง  

  3. บันทึก API Key และ API Secret ไว้ในที่ที่ปลอดภัย

    1. โปรดทราบว่า API Secret จะปรากฏเพียง 1 ครั้งเท่านั้น ดังนั้น ผู้ใช้จำเป็นต้องทำการบันทึก และเก็บรักษาไว้ในที่ที่ปลอดภัย

  4. ตั้งค่า Permission ให้ API Key นั้น ๆ

  • 1 API Key สามารถจำกัดให้ถูกเรียกมาจาก Specific IP ได้สูงสุดที่ 50 IP

  • ตัวอย่าง Permission

    • Read: การอนุญาตให้ API สามารถเข้าดูข้อมูลบัญชีได้ (เป็นค่าพื้นฐานของการใช้งาน)

    • Trade: การอนุญาตให้ API สามารถจัดการรายการซื้อขายได้

    • Withdraw: การอนุญาตให้ API สามารถจัดการรายการถอนได้

    • Deposit: การอนุญาตให้ API สามารถจัดการรายการฝากได้



องค์ประกอบของ API

  1. API ฝั่งลูกค้าหรือผู้ใช้งาน

    1. URL

    2. Request method: ที่ใช้หลัก ๆ บนบิทคับ เอ็กซ์เชนจ์ ได้แก่ POST, GET

    3. Request header: เทียบได้กับหัวข้อของจดหมาย

    4. Request body: ข้อมูลเชิงลึกเกี่ยวกับ Request หรือ “จดหมาย” นั้น ๆ 


  1. API Response จาก Server ของบิทคับ เอ็กซ์เชนจ์ กลับไปยังลูกค้า

    1. Response header

    2. Response body


REST API


REST API ย่อมาจาก Representational State Transfer คือ วิธีการส่งข้อมูลระหว่างผู้ใช้ กับ Server ของบริษัทผ่านเส้น API หรือ “Endpoint” รูปแบบหนึ่งซึ่งเป็นที่นิยมใช้กันอย่างแพร่หลายในปัจจุบัน โดย API แต่ละเส้นจะมีหน้าที่เฉพาะ 1 อย่าง และ API แต่ละเส้นก็จะทำหน้าที่ที่แตกต่างกัน 


วิธีการขอข้อมูลผ่าน REST API (Request Method) มีหลายรูปแบบ อาทิเช่น

  • GET = ใช้ดึงข้อมูล

  • POST = ใช้เพิ่มหรือสร้างข้อมูลใหม่ ทั้งนี้ ในการใช้งานจริงบางครั้ง อาจถูกนำมาใช้ในการดึงข้อมูลได้เช่นกัน เช่น ใช้ในการเช็คข้อมูลออร์เดอร์ ฯลฯ

  • DELETE = ใช้ลบข้อมูล


การจำแนกประเภทของ REST API บนบิทคับ เอ็กซ์เชนจ์

มี 2 ประเภท ได้แก่

  1. Secure = REST API ที่ต้องมีการยืนยันตัวตนด้วย API Key และ API Secret ก่อนใช้งาน

  2. Non-secure = REST API ที่ใช้ในการเข้าดูข้อมูลทั่วไป จึงไม่ต้องใช้ API Key และ API Secret ในการใช้งานหรือเรียกดูข้อมูล


ตัวอย่างการใช้งาน REST API บนบิทคับ เอ็กซ์เชนจ์

  1. Market data = ใช้ในการดูข้อมูลตลาด

  2. Order = ใช้ในการจัดการออร์เดอร์ต่าง ๆ

  3. Deposit & withdraw = ใช้ในการสั่งถอน และดูประวัติรายการฝากถอน

  4. Account = ใช้ในการดูข้อมูลบัญชี และที่อยู่กระเป๋า



ลูกค้าสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับ API เช่น ตรวจสอบ base URL, ดูประเภทของ Endpoint (Secure vs Non-secure) ฯลฯ ได้ที่ API document


ตัวอย่างการใช้งาน API 

  1. เมื่อนายบุญคับ Log in เข้าสู่บัญชีบิทคับของตนเองแล้ว นายบุญคับต้องการตรวจสอบราคาตลาดของเหรียญ ABC นายบุญคับจึงใช้ API ต่อไปนี้ 

  2. ใช้เส้น GET - asks เพื่อดูข้อมูลจากสมุดคำสั่งซื้อขาย (Order book) สีแดง

  3. ใช้เส้น GET - bids เพื่อดูข้อมูลจากสมุดคำสั่งซื้อขายสีเขียว

  4. สามารถใช้ REST API แบบ Non-secure endpoint ได้ เนื่องจากเป็นการดูข้อมูลตลาดทั่วไป ไม่ใช่ข้อมูลบัญชี

  1. นายบุญคับต้องการตรวจสอบยอดเงินคงเหลือในบัญชี = ใช้เส้น balances

  2. นายบุญคับต้องการตั้งออร์เดอร์ซื้อ = ใช้เส้น place-bid

  3. นายบุญคับต้องการตรวจสอบรายการซื้อขายที่ยังไม่ถูกจับคู่บนบัญชีของตนเอง (Pending order) = ใช้เส้น my-open-order

  4. ต่อมา นายบุญคับต้องการยกเลิกออร์เดอร์ = ใช้เส้น cancel-order


บทความที่เกี่ยวข้อง

บทความนี้มีประโยชน์หรือไม่?

เยี่ยมเลย!

ขอบคุณสำหรับความคิดเห็นของคุณ

ขออภัยที่เราช่วยเหลือไม่ได้!

ขอบคุณสำหรับความคิดเห็นของคุณ

บอกให้เราทราบว่าเราจะปรับปรุงบทความนี้ได้อย่างไร!

เลือกเหตุผลอย่างน้อยหนึ่งข้อ
ต้องมีการตรวจสอบ CAPTCHA

ส่งข้อเสนอแนะแล้ว

เราขอขอบคุณในความพยายามของคุณ และจะพยายามแก้ไขบทความดังกล่าว