
API คืออะไร?
API ย่อมาจาก Application Programming Interface คือข้อกำหนดและโปรโตคอลที่ใช้ในการสร้าง software application โดย API จะช่วยให้ software ของเราติดต่อสื่อสารกับ software อื่นได้ API จะกำหนดว่าเราจะต้อง request อย่างไร เพื่อให้ได้ response ที่ต้องการ
พูดง่ายๆคือ API เป็น code ที่ควบคุมการเข้าใช้งานของ server ช่วยให้ application ติดต่อกับ server ได้
เปรียบเทียบกับตัวอย่างในชีวิตประจำวัน
เปรียบเทียบกับการไปทานอาหารที่ร้าน ห้องครัวเป็นเหมือน server ในห้องครัวจะสามารถทำอาหารที่เราต้องการได้ เราต้องการทานอาหาร จะทำอย่างไรให้ได้อาหารมาล่ะ?
พนักงานรับออร์เดอร์เปรียบเสมือน API ที่เข้ามารับออร์เดอร์ เดินกลับไปบอกห้องครัวว่าต้องทำอะไร และนำเอาอาหารกลับมาให้เราที่โต๊ะ
การใช้ API ใน Web Development
ในบริบทของการพัฒนาเว็บ API คือชุดของรายละเอียด เช่น ข้อความใน HTTP request และโครงสร้างของของข้อความตอบกลับ (response) ของรายละเอียดที่ส่งไป ปกติจะอยู่ในรูปของ XML หรือ JSON
ประโยชน์ของ API
API ช่วยให้เราใช้ function ที่ต้องการได้โดยไม่ต้องเขียนโค๊ดเองทั้งหมด นอกจากนี้ API ยังช่วยให้เราเข้าถึงข้อมูลใน application อื่นได้ด้วย เช่น การทำให้บัญชี twitter ของเราปรากฏอยู่บนเว็บไซต์ WordPress ทำได้โดยการใช้ API ของ twitter เป็นต้น
ชนิดของ API
API แบ่งออกเป็น 3 ชนิดหลักๆ ดังนี้
- Private: API ที่ใช้กันแค่ภายในเท่านั้น คนนอกไม่สามารถใช้ได้ ปกติ API ชนิดนี้จะใช้กันเองในบริษัท เพื่อปรับปรุงผลิตภัณฑ์หรือบริการ
- Partner: คนนอกสามารถใช้ได้ แต่จำกัดให้เข้าใช้ได้เฉพาะผู้ที่ได้รับอนุญาตเท่านั้น
- Public: API ที่เปิดเป็นสาธารณะ ทุกคนสามารถเข้าใช้ได้ ตัวอย่าง API ประเภทนี้เช่น Microsoft Windows API จาก Microsoft, Carbon และ Cocoa จาก Apple เป็นต้น
Web Service API
Web service คือระบบ หรือ software ที่ให้บริการทางที่อยู่ URL บน World Wide Web
API ต่างจาก web service อย่างไร?
API เป็น interface ที่อนุญาตให้เราใช้ข้อมูลหรือ function จาก software อื่นบน software ของเราได้ ในขณะที่ web service เป็นการทำงานบน network-based ที่ใช้สำหรับงานใดงานหนึ่งตามที่ร้องขอเท่านั้น ผ่านทางโปรโตคอลต่างๆ เช่น HTTP เป็นต้น
ตัวอย่างของ web service API
- REST
- SOAP
- XML-RPC
- JSON-RPC
สรุป
web service ทั้งหมดเป็น API แต่ไม่ใช่ว่าทุก API จะเป็น web service และอาจมีบางงานที่ web service ทำไม่ได้เหมือน API