Application Program Interface (API)

Datafarm
3 min readJan 25, 2023

สวัสดีครับคุณผู้อ่านทุกท่าน วันนี้ผมจะมาพูดถึง Application Program Interface หรือที่เราเรียกกันสั้น ๆ ว่า API ว่าคืออะไร ใช้งานอย่างไร ด้านไหน รวมถึงมีประโยชน์อย่างไรบ้างครับ…

Application Program Interface (API) คือกลไกที่ช่วยให้ส่วนประกอบโปรแกรมหรือซอฟต์แวร์สองส่วนสามารถสื่อสารกันได้ โดยประกอบไปด้วยชุดคำสั่งหรือที่เราเรียกสั้น ๆ ว่าโค้ด (Code) ซึ่งชุดโค้ด API นี้ถูกสร้างขึ้นเพื่ออนุญาตให้ซอฟต์แวร์สามารถสื่อสารระหว่างกันได้ ถึงแม้ว่าซอฟต์แวร์ที่พัฒนาขึ้นมานั้นจะมีความแตกต่างกันในด้านภาษาที่ใช้พัฒนา เจ้า API นี้ก็ยังเป็นตัวกลางคอยช่วยให้ซอฟต์แวร์สามารถสื่อสารกันได้โดยการใช้งาน Function ผ่านการเรียกใช้ Document ที่เขียนไว้

การใช้งาน API

เรามาดูตัวอย่างการนำ API ไปใช้งานในด้านต่าง ๆ ดังนี้

  1. Libraries and Frameworks
    การนำ API ไปใช้เป็น Software Library ซึ่งเขียนขึ้นเป็น Document ที่จะเรียกใช้งาน ในรูปแบบภาษาที่ต่างกันออกไปตามความเหมาะสมของงาน เพื่อนำไปทำเป็น Framework ให้กับระบบไว้ใช้ในการสื่อสารระหว่างกัน
  2. Operating Systems
    API ที่ใช้งานในการสื่อสารระหว่าง Application และ Operating System (OS) เช่น Portable Operating System Interface (POSIX) เป็นมาตราฐานการสื่อสารที่ถูกกำหนดโดย IEEE Computer Society ทำให้ซอฟต์แวร์ที่ผู้พัฒนาสร้างขึ้นมานั้นสามารถย้ายไปใช้งานกับระบบปฏิบัติการอื่น ๆ ที่รองรับ POSIX หรือเราจะเรียกการพัฒนาโปรแกรมแบบนี้ว่า การพัฒนาแบบ Cross-Platform นั่นเอง
  3. Remote API
    Remote API คือ API ที่ช่วยให้นักพัฒนาสามารถจัดการทรัพยากรจากระยะไกลผ่านโปรโตคอล ซึ่งเป็นมาตรฐานเฉพาะสำหรับการสื่อสารที่ช่วยให้เทคโนโลยีต่าง ๆ ทำงานร่วมกันได้ โดยไม่คำนึงถึงภาษาที่ใช้พัฒนาหรือแพลตฟอร์ม ตัวอย่างเช่น Java Database Connectivity API ที่ช่วยให้นักพัฒนาสามารถสืบค้นฐานข้อมูลหลายประเภทด้วย Function เดียวกัน จึงถูกใช้บ่อยในงาน maintenance เพื่อดึงข้อมูลจาก Server กลับมาใช้ทำงาน
  4. Web API
    Web API นิยมใช้กันมากในปัจจุบันเพราะการเชื่อมต่อ API ทำได้ง่ายและหลากหลาย ซึ่งหลายธุรกิจต่างก็ใช้ Website เป็นแพลตฟอร์มหลักอยู่แล้วนั่นเอง โดยเจ้า Web API นั้นทำงานผ่าน HTTP Protocol โดยรูปแบบการสื่อสารผ่าน XML และ JSON ซึ่งใช้มาตรฐาน API เช่น SOAP หรือ REST ในการพัฒนา
  • SOAP (Simple Object Access Protocol) ใช้ XML Format ส่งข้อมูลผ่าน HTTP Request และ รับข้อมูลเป็น XML Format
  • REST (Representational State Transfer) ใช้ JSON Format ส่งข้อมูลผ่าน URL และ รับข้อมูลเป็น JSON Format

ผมจะลองยกตัวอย่างการนำ API ไปใช้ในกรณีที่เป็น Web API โดยออกแบบโครงสร้าง Web Application Infrastructure เป็นแบบ One Server และ Many Servers — Many Databases ดังนี้

ภาพที่ 1 One Server

จากภาพที่ 1 จะเห็นได้ว่าการเชื่อมต่อระหว่าง Client กับ Server เป็นแบบ One Server กล่าวคือ Client ทั้งหมดเชื่อมต่อไปที่เซิร์ฟเวอร์หมายเลข 1 เครื่องเดียว โดยภายในอาจจะมีการเชื่อมต่อ Web Application และ Database ที่หลากหลายผ่าน API หรือผ่านการเชื่อมต่อแบบอื่นได้ ทำให้มีทั้งผลดีและผลเสียไปพร้อม ๆ กัน

ผลดีของการออกแบบ One Server คือมีความสะดวกในการพัฒนา ลดค่าอุปกรณ์และซอฟต์แวร์ต่าง ๆ เป็นต้น ส่วนผลเสียคือ ความเสี่ยงจะมีสูงมากหาก Web Application ใด ๆ ที่โฮสต์บนเซิร์ฟเวอร์นี้ถูกบุกรุกหรือหาก Web Application ใด ๆ ที่โฮสต์อยู่มีช่องโหว่ ข้อมูลของ Web Server ทั้งหมดจะตกอยู่ภายใต้ความเสี่ยง เหมือนเรานำไข่ทั้งหมดไปไว้ในตะกร้าใบเดียว นอกจากนี้หาก Web Server หยุดทำงานด้วยเหตุผลใดก็ตาม Web Application ที่โฮสต์อยู่ทั้งหมดก็จะไม่สามารถเข้าถึงได้จนกว่าปัญหาจะได้รับการแก้ไข

จากนั้นเรามาดูตัวอย่างการออกแบบ Web Application Infrastructure ถัดไปที่จะทำให้เราเห็นภาพมากยิ่งขึ้นว่าการนำ API มาใช้งานจะมีส่วนช่วยผู้พัฒนาได้อย่างไรบ้าง

ภาพที่ 2 Many Servers — Many Databases

จากภาพที่ 2 การออกแบบ Web Application Infrastructure เป็นแบบ Many Servers — Many Databases การออกแบบนี้ออกแบบมาเพื่อการใช้งานที่หลากหลาย เช่น ต้องการมีฐานข้อมูลสำรองหรือการทำ Load Balancers เป็นต้น และการทำเช่นนี้จะมีความยากให้การติดตั้งมากกว่าแบบแรกและค่าใช้จ่ายในด้านอื่น ๆ จะเพิ่มขึ้นเป็นอย่างมาก จากภาพ Server 1, Server 2, Server 3 หากมีการเขียนโค้ด API ไว้เชื่อมต่อกันแล้ว Server 1, Server 2, Server 3 ไม่จำเป็นต้องใช้ภาษาในการพัฒนาซอฟต์แวร์ภาษาเดียวกันก็ได้ Server 1 อาจใช้ภาษา Java ในการพัฒนา Server 2 อาจใช้ภาษา C# ในการพัฒนา Server 3 อาจใช้ภาษา PHP ในการพัฒนาและในส่วนที่เป็น Database ก็เช่นเดียวกันไม่จำเป็นต้องใช้ Database ชนิดเดียวกัน ซึ่งทั้งหมดสามารถเชื่อมต่อและสื่อสารกันได้ผ่าน Web API

ประโยชน์ของ Web API

  1. การพัฒนา Web Application หรือ Application จะพัฒนาได้ง่ายและรวดเร็ว ซึ่ง API จะช่วยให้นักพัฒนาไม่ต้องเข้าไปแก้ไข Function ที่ทำงานแต่สามารถเรียก Function ผ่าน Document ที่พัฒนาขึ้นมาได้
  2. การพัฒนา Web Application การต่อยอด การเปลี่ยนแปลงแก้ไขทำได้หลากหลายและสะดวกยิ่งขึ้น
  3. ผู้ใช้งาน Web Application ต่าง ๆ มีความสะดวกในการเข้าถึงข้อมูลของอีก Web Application ที่ใช้ตัวกลางเป็น Web API ตามที่ตกลงกันไว้ ทำให้ไม่จำเป็นต้องเข้า Web Application ที่ไม่ใช้เป้าหมายเพื่อดูข้อมูล การรับรู้ข่าวสารต่าง ๆ ก็จะทั่วถึงกันและสะดวกในการใช้งานของผู้ใช้
  4. ปัจจุบันเว็บไซต์ใหญ่ ๆ หลายเว็บไซต์มีการเปิดให้ใช้งาน API ของตน ซึ่งทำให้ผู้พัฒนาสามารถเรียกใช้งาน Function ได้โดยง่าย เช่น Google Maps API, YouTube APIs, Twitter APIs และ Amazon Product Advertising API เป็นต้น

จากบทความข้างต้นทำให้เราพอจะทราบถึงความหมาย การนำไปใช้งานและประโยชน์ของเจ้า API บ้างแล้ว ซึ่ง API ที่ดีควรยึดหลักมาตราฐานที่เป็นที่รู้จัก เพราะจะทำให้ง่ายต่อความเข้าใจและการนำไปใช้งานโดยนักพัฒนาท่านอื่น ๆ

การพัฒนา API ควรคำนึงถึงเรื่องการออกแบบ การทำการทดสอบ การอัปเดตเวอร์ชั่น การซัพพอร์ต ความปลอดภัย ความต่อเนื่องในการให้บริการ รวมถึงการทำ Document ประกอบการนำไปใช้งานหรือเรียกใช้งาน เช่นเดียวกับการพัฒนาซอฟต์แวร์ โดยผู้พัฒนาสามารถหาความรู้เพิ่มเติมในด้านความปลอดภัยของการพัฒนา API จาก OWASP API Top 10 ซึ่ง OWASP เอง เป็นองค์กรที่ได้รับความน่าเชื่อถือและเป็นองค์กรไม่แสวงหาผลกำไรที่เน้นให้ความรู้ด้านความปลอดภัยของระบบคอมพิวเตอร์ โดยได้จัดลำดับภัยคุกคามหรือช่องโหว่ที่พบได้บ่อย 10 ลำดับไว้ใน OWASP API Top 10 เพื่อน ๆ สามารถเข้าไปศึกษาเพิ่มเติมกันได้นะครับ

--

--

No responses yet