ทำความเข้าใจพื้นฐาน
API คืออะไร?

มาเริ่มกันง่ายๆ เลย API ย่อมาจาก Application Programming Interface ลองนึกภาพว่าเป็นพนักงานเสิร์ฟที่เป็นมิตรในร้านอาหารที่รับออเดอร์อาหารของคุณ (ข้อมูลของคุณ) นำไปส่งที่ห้องครัว (ระบบ) และนำอาหารกลับมาให้คุณ (การตอบกลับ)
ในทางเทคนิค API ช่วยให้แอปพลิเคชันซอฟต์แวร์ต่างๆ สามารถสื่อสารกันได้ มันคือสะพานที่เชื่อมต่อแอปพลิเคชัน ฐานข้อมูล อุปกรณ์ และในโลกที่เน้นคลาวด์เป็นอันดับแรกในปัจจุบัน แม้กระทั่งโมเดล AI
ประเด็นสำคัญ:
- API เปิดเผยข้อมูลหรือบริการในรูปแบบที่เป็นมาตรฐาน
- API สามารถเป็นแบบสาธารณะ (Twitter API) ส่วนตัว (ภายในองค์กร) หรือแบบพาร์ทเนอร์
- API มีหลายประเภท เช่น REST, SOAP, GraphQL และอื่นๆ
ทำไม API ถึงสำคัญนัก?
API มีอยู่ทุกที่ ตั้งแต่การแสดงสภาพอากาศบนสมาร์ทโฟนของคุณ ไปจนถึงการประมวลผลการชำระเงินในแอปพลิเคชัน E-commerce พวกมันช่วยให้คุณ:
- ดึงและอัปเดตข้อมูลได้อย่างปลอดภัย
- ผสานรวมบริการจากบุคคลที่สาม
- ทำงานอัตโนมัติโดยไม่ต้องเขียนทุกอย่างตั้งแต่เริ่มต้น
ไมโครเซอร์วิสคืออะไร?

ตอนนี้ เรามาสำรวจคำที่สองกัน: ไมโครเซอร์วิส นี่ไม่ใช่เรื่องของเทคโนโลยีเฉพาะเจาะจงมากนัก แต่เป็นเรื่องของสถาปัตยกรรม
ลองนึกภาพชุดเลโก้ขนาดยักษ์: แทนที่จะสร้างชิ้นงานขนาดใหญ่แบบ Monolithic ชิ้นเดียว คุณสร้างชิ้นส่วนเล็กๆ ที่เป็นอิสระจำนวนมาก นั่นคือแนวทางของไมโครเซอร์วิส!
ไมโครเซอร์วิสแบ่งแอปพลิเคชันขนาดใหญ่ออกเป็นบริการย่อยๆ ที่เป็นอิสระจำนวนมาก แต่ละบริการทำงานหนึ่งอย่างได้ดี (เช่น การเข้าสู่ระบบของผู้ใช้ การชำระเงิน หรือการแจ้งเตือน) และทั้งหมดสื่อสารกันโดยใช้ API
ลักษณะสำคัญ:
- ไมโครเซอร์วิสแต่ละตัวได้รับการพัฒนา ปรับใช้ และปรับขนาดได้อย่างอิสระ
- สามารถเขียนโค้ดได้ด้วยภาษาที่แตกต่างกัน เช่น Python สำหรับการยืนยันตัวตน, Java สำหรับการประมวลผล เป็นต้น
- ทีมสามารถทำงานบนบริการที่แตกต่างกันได้โดยไม่ขัดแย้งกัน
ทำไมต้องใช้ไมโครเซอร์วิส?
หากคุณต้องการความยืดหยุ่น การเผยแพร่ที่รวดเร็ว และแอปพลิเคชันที่ปรับขนาดได้ ไมโครเซอร์วิสจะมอบประโยชน์มหาศาล คุณสามารถอัปเดตบางส่วนของแอปได้โดยไม่ต้องทำให้ทั้งระบบออฟไลน์ ซึ่งเป็นข้อได้เปรียบที่สำคัญสำหรับทีมที่ทำงานรวดเร็ว
API กับไมโครเซอร์วิส: ไม่ใช่สิ่งเดียวกันหรอกหรือ?
เมื่อเราได้นิยามทั้ง API และไมโครเซอร์วิสแล้ว ก็ถึงเวลาทำความเข้าใจว่าทั้งสองสิ่งนี้มีความสัมพันธ์กันอย่างไร นี่คือจุดที่หลายคนติดขัด: API กับไมโครเซอร์วิสใช้แทนกันได้หรือไม่?
คำตอบสั้นๆ: ไม่ใช่ แต่มีความเกี่ยวข้องกันอย่างใกล้ชิด
- API = โปรโตคอลการสื่อสาร
- ไมโครเซอร์วิส = แอปพลิเคชันขนาดเล็กที่เป็นอิสระ
ลองจินตนาการว่าคุณกำลังออกแบบเมือง:
- API เปรียบเสมือนถนนและกฎจราจร ที่กำหนดว่าสิ่งต่างๆ เคลื่อนที่อย่างไร ใครมีสิทธิ์เข้าถึง และข้อมูลจะไปถึงปลายทางได้อย่างไร
- ไมโครเซอร์วิสเปรียบเสมือนอาคารแต่ละหลัง ซึ่งแต่ละหลังมีหน้าที่แตกต่างกัน (เช่น โรงพยาบาล โรงเรียน ร้านค้า) แต่ทั้งหมดเชื่อมต่อเข้ากับโครงข่ายของเมือง (API)
ความสัมพันธ์ระหว่าง API และไมโครเซอร์วิส
ไมโครเซอร์วิสส่วนใหญ่สื่อสารกันเองและกับโลกภายนอกผ่าน API ดังนั้น ไมโครเซอร์วิสจึงต้องพึ่งพา API ในการทำงาน แต่ไม่ใช่ทุก API ที่หมายความว่าคุณกำลังใช้ไมโครเซอร์วิส คุณสามารถมีแอปพลิเคชันแบบ Monolithic ที่มี API สาธารณะ หรือคุณสามารถแบ่งโปรเจกต์ของคุณออกเป็นไมโครเซอร์วิส ซึ่งแต่ละตัวจะเปิดเผย API ของตัวเอง
1. API ในไมโครเซอร์วิส
ในสถาปัตยกรรมไมโครเซอร์วิส API มีบทบาทสำคัญในการเปิดใช้งานการสื่อสารระหว่างบริการต่างๆ ไมโครเซอร์วิสแต่ละตัวมักจะเปิดเผย API ที่อนุญาตให้บริการอื่นๆ (หรือไคลเอนต์ภายนอก) โต้ตอบกับมัน API เหล่านี้เป็นส่วนเชื่อมต่อที่ชัดเจนกับฟังก์ชันการทำงานพื้นฐานของไมโครเซอร์วิส ทำให้สามารถผสานรวมและทำงานร่วมกันระหว่างส่วนต่างๆ ของระบบได้
ตัวอย่างเช่น พิจารณาแพลตฟอร์มอีคอมเมิร์ซ อาจมีไมโครเซอร์วิสหลายตัว: บริการชำระเงิน บริการแค็ตตาล็อกสินค้า และบริการคำสั่งซื้อ บริการแต่ละตัวเหล่านี้จะเปิดเผย API ที่บริการอื่นๆ สามารถเรียกใช้เพื่อดึงข้อมูลหรือกระตุ้นการทำงานได้
ไมโครเซอร์วิสในฐานะสถาปัตยกรรมที่ขับเคลื่อนด้วย API
ในขณะที่ API เป็นวิธีการสื่อสาร ไมโครเซอร์วิสเป็นตัวแทนของสถาปัตยกรรมโดยรวมที่ช่วยให้สามารถปรับขนาดและความยืดหยุ่นได้ แนวทางไมโครเซอร์วิสมักจะเกี่ยวข้องกับ API หลายตัวที่ทำงานร่วมกันเพื่อให้ฟังก์ชันการทำงานข้ามบริการต่างๆ สิ่งนี้ทำให้ไมโครเซอร์วิสเป็นสถาปัตยกรรมที่ขับเคลื่อนด้วย API
ด้าน | API | ไมโครเซอร์วิส |
---|---|---|
คืออะไร | ส่วนเชื่อมต่อสำหรับการสื่อสาร | รูปแบบสถาปัตยกรรมซอฟต์แวร์ |
ฟังก์ชันหลัก | เปิดเผยข้อมูล/บริการ | แยกแอปออกเป็นบริการย่อยๆ |
การพึ่งพา | สามารถอยู่ได้ด้วยตัวเอง | ต้องการ API สำหรับการสื่อสาร |
ตัวอย่าง | Payment API | Inventory microservice |
ประโยชน์หลัก | การผสานรวมและความยืดหยุ่น |