API คืออะไร? อธิบายแบบคนไม่เขียนโปรแกรมรู้เรื่องได้มั้ย?

Krist Wongsuphasawat
Skooldio
Published in
2 min readJun 26, 2017

ก่อนอื่นต้องทำความเข้าใจก่อนว่าแอพต่างๆหรือหน้าเว็บที่เราเห็นกันทุกวันนี้ การทำงานทุกอย่างไม่ได้อยู่ในแอพ Facebook ที่คุณลงไว้ในมือถือ หรือหน้าเว็บ facebook.com ที่คุณเปิดขึ้นมา

ระบบมักจะแบ่งเป็นสองส่วนขึ้นไป ส่วนหนึ่งเอาไว้แสดงผลและรับคำสั่งจากคุณว่าอยากจะทำอะไร (แอพที่คุณลงไว้บนมือถือ หรือหน้าเว็บ facebook.com ที่มีช่องให้กรอกกับปุ่มให้กด) พอกดปุ่ม มันจะส่งคำสั่งไปที่ server อีกที ซึ่งเป็นส่วนที่ทำงานจริงๆ พอทำงานเสร็จก็จะคืนผลลัพธ์ให้กลับมาแสดงบนหน้าจอ

เช่น เวลาเราเปิดแอพ Facebook แล้วเราเห็นสิ่งต่างๆเกี่ยวกับเพื่อนๆขึ้นมาบนหน้าจอ มันมาได้ยังไง? มันเกิดจากแอพ Facebook บนมือถือของเรา ถามไปที่ Server ของ Facebook ว่ามีอะไรใหม่บ้าง แล้วพอ Server ได้รับคำถามก็ส่งรายการกลับมาให้ แล้วแอพบนมือถือเราก็เอาไปจัดการต่อว่าจะแสดงบนจอยังไง การ “ถาม” ของแอพบนมือถือเราไปยัง Server นั้น ในทางเขียนโปรแกรม เรียกว่าแอพมือถือเรียกใช้ API ของ server

API ย่อมาจาก Application Programming Interface ที่แปลความได้ว่า วิธีเรียกใช้โปรแกรม เราต้องเร่ิมจากการมองว่า Server ของผู้ให้บริการต่างๆเป็นโปรแกรมก่อน เช่น Server ของ Google ที่ค้นหาข้อมูลให้เราก็ถือว่าเป็นโปรแกรมใหญ่ๆตัวหนึ่ง Server ของ Facebook ก็เป็นโปรแกรมตัวหนึ่ง Server ธนาคารก็เป็นโปรแกรมตัวหนึ่ง

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

  1. สั่งอะไรได้บ้าง มองแบบง่ายๆแต่ละคำสั่งคือ 1 API
  2. แต่ละคำสั่งต้องบอกอะไรเพิ่มบ้าง เช่น สั่งว่าขอข้อมูลหน้าโปรไฟล์เพื่อนหน่อย คุณก็ต้องบอกชื่อเพื่อน และบอกว่าคุณเป็นใครด้วย จะได้ยืนยันว่าเป็นเพื่อนกัน

บางบริษัทอาจทำ API ให้ใช้แค่สำหรับแอพของบริษัทตัวเอง แต่บางบริษัทก็เปิดให้คนนอกใช้ก็ได้ เช่น ถ้าผมทำแอพเกมแล้วอยากให้คนเล่นโพสลง Facebook ผมก็สามารถเรียก API ของ Facebook ได้เลย

API ทำอะไรได้หลายอย่าง

  • บาง API อาจเป็นคำถามที่ไม่ได้แก้อะไร แต่อยากได้รับข้อมูลกลับมา เช่น ขอดูโปรไฟล์เพื่อน
  • บาง API อาจจะเปลี่ยนแปลงบางอย่างในระบบ เช่น การโพสรูป เราก็ต้องส่งรูปจากเครื่องเราไปเก็บบน server เพื่อนๆจะได้เปิดดูได้
  • บาง API ก็ช่วยทำหลายๆอย่างให้คนใช้งานได้สะดวกขึ้น เช่น อยากได้ปุ่ม Like แทนที่จะต้องนั่งคิดว่าจะวาดปุ่ม Like บนเว็บตัวเองยังไง แล้วจะกด…

Krist Wongsuphasawat
Skooldio

Data Experience @airbnb / Prev: Turn data into pixels @twitter • Invent new vis @UofMaryland HCIL PhD • From @Thailand • http://kristw.yellowpigz.com