หากพูดถึงการพัฒนาแอปพลิเคชัน เว็บไซต์ หรือ เกม เรามักจะได้ยินคำว่า API (Application Programming Interface) ด้วยเสมอ และถ้าฟังแบบเผิน ๆ บางคนอาจจะเผลอเข้าใจว่ามันคือ ส่วนประสานงานกับผู้ใช้ (User Interface) หรือหน้าแพลตฟอร์มที่ให้ผู้ใช้งานควบคุม แต่ความจริงแล้ว API ก็คือส่วนหนึ่งที่ทำงานอยู่ในนั้น และมีหน้าที่ให้แอปพลิเคชัน เว็บไซต์ หรือ เกม ต่าง ๆ เป็นผู้ใช้งานและสื่อสารกับแพลตฟอร์มอื่น ๆ
ซึ่งเดี๋ยวบทความนี้ เราจะมาพูดถึง API ว่ามันคืออะไร มีความสำคัญอย่างไร ต่อการทำแอปพลิเคชัน และการสร้างเว็บไซต์ ถ้าเกิดไม่มีเทคโนโลยี API จะส่งผลต่อการใช้แอปพลิเคชัน เว็บไซต์ หรือไม่ บทความนี้เราจะมาหาคำตอบกันในบทความนี้
ความหมายของ API (Application Programming Interface) คือ "ส่วนต่อประสานโปรแกรมประยุกต์" (แปลจากวิกิพิเดีย) ถ้าอธิบายแบบภาษาคนทั่วไป มันก็คือ 'ตัวกลาง' ที่ให้เหล่า เว็บไซต์, ซอฟต์แวร์, แอปพลิเคชัน สามารถสื่อสาร และ ทำงานร่วมกันได้ โดยเชื่อมถึงข้อมูลกับฐานข้อมูล (Database) ของอีกฝ่าย ในรูปแบบของ "โค้ด" ที่เป็นคำสั่งเรียกใช้ API
ตัวอย่างโครงสร้างโค้ด AdWord API (ภาษา Java)ของ Google ที่ให้เข้าถึงการใช้งาน Google Ads platform
คนที่มีส่วนเกี่ยวข้องกับ API แบ่งเป็น 2 ฝั่งคือ ผู้พัฒนาที่สร้าง API จากบริการและฐานข้อมูลที่ตัวเองมี และ ผู้พัฒนาที่ขอใช้งาน API บนบริการของตัวเอง ยกตัวอย่างเช่น ระบบล็อกอินบนเว็บไซต์หนึ่งที่สามารถล็อกอินด้วยบัญชี Facebook ได้, ระบบ Google Maps บนแอปพลิเคชันติดตามการวิ่ง, การเชื่อมต่อบัญชี Google Account ผ่านบริการต่าง ๆ เป็นต้น
โดยคำว่า "ตัวกลาง" ก็หมายถึง API อยู่ตรงกลางระหว่างแอปพลิเคชันปลายทาง กับ เซิฟเวอร์ของผู้พัฒนา (ที่สร้าง API) ทำหน้าที่ดึงข้อมูลการกระทำของผู้ใช้บนแพลตฟอร์ม ไปประมวลผลบนเซิฟเวอร์ของผู้สร้าง API และตอบสนองข้อมูลกลับไปยังหน้าแพลตฟอร์มของผู้ใช้อีกที
การที่ต้องมี API ไว้เป็นตัวกลาง ก็เพื่อป้องกันความปลอดภัยให้ Sever ฝั่งผู้สร้าง เพราะ API นอกจากจะช่วยส่งข้อมูลง่ายขึ้นแล้ว มันยังเหมือนช่องทาง (Gateway) ที่สามารถป้องกันการเข้าถึงข้อมูลโดยตรงของอีกฝ่าย และกำหนดสิทธิ์การเข้าถึงได้ อีกทั้งยังเป็นการป้องกันผู้ไม่หวังดีที่มาโจมตีล้วงข้อมูลผ่านเซิฟเวอร์ของพัฒนาซอฟต์แวร์ และ เว็บไซต์ที่ใช้ API นั่นเอง
ถ้าจะอธิบาย API ให้เห็นภาพรวมทั้งหมด ยกตัวอย่างชัด ๆ คือ แอปพลิเคชันระบบเทรดหุ้นเจ้าหนึ่ง ที่จะขอเรียกว่าแอปพลิเคชัน F (Finansia) ละกัน
ถ้าดูตามภาพเราจะพบว่าบนแอปพลิเคชัน F สามารถดูข้อมูลราคาหุ้นของตลาดหลักทรัพย์ได้แบบเรียลไทม์ และมีการอัปเดตพร้อมตลาดหลักทรัพย์เลย
คำถามคือ ราคาหุ้นที่ขึ้นโชว์บนแอปพลิเคชัน F ใครเป็นคนทำ ?
แน่นอนว่าคนทำข้อมูลไม่ใช่ผู้พัฒนาแอปพลิเคชัน F อยู่แล้ว เพราะหากทำเองออกมาได้ทั้งหมด มันคงต้องใช้ทั้งทรัพยากรมนุษย์ และ การลงทุนด้านระบบ กับข้อมูลที่มหาศาลเลยแหล่ะ ซึ่งบริษัทเอกชนทั่วไปคงไม่กล้าที่จะลงทุนมากขนาดนั้น
ดังนั้นเมื่อผู้พัฒนาแอปพลิเคชัน F ต้องการให้มีข้อมูลราคาหุ้นแสดงโชว์แบบเรียลไทม์ หนทางที่ง่ายกว่า คือการขอ API ราคาและชาร์ตของหุ้น (Settrade Open API) จากตลาดหลักทรัพย์มาใช้บนแอปพลิเคชัน F เพียงแค่นี้ข้อมูลตลาดหลักทรัพย์ทั้งหมดก็จะโชว์บนแอปพลิเคชัน F และคอยอัปเดตให้ผู้ใช้ตลอดเวลา
โดยทั้ง 2 ฝ่ายก็จะต้องมีข้อตกลง และ ค่าใช้จ่ายกันไป ซึ่งการใช้ API เป็นตัวกลางของตลาดหลักทรัพย์ ก็ทำให้ผู้พัฒนาแอปพลิเคชัน F ไม่ได้เข้าถึงระบบทั้งหมดของตลาดหลักทรัพย์โดยตรง แต่เข้าถึงข้อมูลชาร์ตหุ้นที่ขอมาเท่านั้น ความเสี่ยงจากการถูกโจมตีเพื่อเจาะเข้าระบบทางฝั่ง F ก็จะไม่เกิดขึ้นนั่นเองครับ
จะเห็นว่า API ถือว่าเป็นระบบที่มีความสำคัญมากจริง ๆ หรือหากไม่เห็นภาพผมขอยกอีกตัวอย่างอีกละกัน ลองนึกถึงแอปพลิเคชัน Grab ที่มีระบบแผนที่ของกูเกิล (Google Map) คำถามคือ Grab สามารถเข้าถึงข้อมูลของ Google Maps ได้อย่างไร แน่นอนก็คือ Grab ขอ API Google Maps มาเขียนโปรแกรมนั่นเอง หรือถ้าใครเคยเล่นเกมมือถือและเคยเห็นระบบล็อกอินผ่าน Google Account หรือ Facebook นั่นก็คือ API อีกรูปแบบเช่นกัน
ดังนั้นการไม่มีระบบ API ผลกระทบที่ตามมาก็คือ ความลำบากของนักพัฒนาจะเพิ่มมากขึ้น เราคงจะไม่ได้มีทางเลือกแอปพลิเคชันหรือระบบต่าง ๆ ให้ใช้งานเยอะขนาดนี้ ไม่ว่าจะเป็นการจองตั๋วเครื่องบิน การจองโรงแรมผ่านเว็บไซต์ แอปสั่งอาหาร รวมถึงการชำระเงินออนไลน์ที่เชื่อมต่อข้อมูลกับระบบธนาคาร สิ่งเหล่านี้อาจเกิดขึ้นได้ยาก
ต่อไปมาถึงรูปแบบหรือชนิดของ API ที่ถูกสร้างเพื่อใช้งานตามวัตถุประสงต์ต่าง ๆ กันบ้าง โดยมีอยู่ 4 ประเภทหลัก ๆ ดังนี้
คือ API เปิดสาธารณะ ที่พร้อมให้นักพัฒนา หรือ องค์กรต่าง ๆ มาขอใช้งานได้เลย หลายองค์กรอย่างเช่น Microsoft สามารถหารายได้โดยการเปิด Public API ให้นักพัฒนาอื่น ๆ สามารถเข้าถึงแอปพลิเคชัน หรือข้อมูลที่ต้องการจาก Windows ได้จากนั้นก็จ่ายเงิน บ้างอาจมีแจกฟรี แล้วแต่ตามข้อตกลง เช่น Windows API ที่นักพัฒนาสามารถเขียนโปรแกรมที่เข้าถึงระบบของ ระบบปฏิบัติการ Windows ได้
คือ API ที่มีให้สำหรับคู่ค้า หรือ พาร์ทเนอร์ทางธุรกิจ เพื่อเป็นการอำนวยความสะดวกให้พาร์ทเนอร์เข้าถึงข้อมูลฝ่ายตรงข้ามได้โดยมีข้อกำหนดว่าสามารถใช้ข้อมูลได้เฉพาะที่ต้องการเท่านั้น เช่น โปรแกรม CRM ที่บริษัท A เปิด API ให้บริษัท B ใช้ข้อมูลลูกค้าบางรายการของบริษัท A เป็นต้น
คือ API ส่วนบุคลที่มีไว้ใช้เฉพาะในองค์กรเท่านั้น เพื่อเชื่อมต่อข้อมูลและระบบภายในองค์กรเข้าด้วยกันอย่างปลอดภัย ลองนึกถึงองค์กรใหญ่ ๆ ที่มีหลายแผนกหลายฝ่าย แต่ละฝ่ายก็มีฐานข้อมูลที่ใช้งานต่างกันไป หากต้องการเข้าถึงระบบของฝ่ายอื่น ๆ ในองค์กร ก็อาจมีการสร้าง API และ เปิดให้อีกฝ่ายใช้งานเป็นต้น
คือรูปแบบการผสมผสาน API ตั้งแต่ 2 บริการขึ้นไปเข้าด้วยกัน เวลาทำงานจะสามารถ ช่วยให้เรียกใช้ข้อมูลพร้อมกันได้ในครั้งเดียว ประโยชน์คือช่วยลดปัญหาการใช้ API ซ้ำซ้อน และ ปรับปรุงประสิทธิภาพแพลตฟอร์มในเรื่องของความเร็วได้ด้วย
หวังว่าบทความนี้ จะทำให้หลายท่าน ที่พยายามทำความเข้าใจว่า API คืออะไร ? ได้กระจ่างมากขึ้น ความจริงแล้วรายละเอียดของ API ยังมีเรื่องของรูปแบบโค้ดและภาษาคอมพิวเตอร์อีกมากมาย ซึ่งถ้าลงลึกขนาดนั้น มันก็เกินความจำเป็น บทความนี้จึงแค่อยากให้ทุกคนเข้าใจว่า API คืออะไร และ มันอยู่ใกล้ตัวกว่าที่เราคิด
|
งานเขียนคืออาหาร ปลายปากกา ก็คือปลายตะหลิว |