เรื่องที่น่าสนใจเกี่ยวกับรูปแบบของ API
ในการพัฒนาระบบงานนั้น เรามักจะแยกส่วนการทำงานต่าง ๆ ออกจากกัน แต่จำเป็นต้องการติดต่อสื่อสารสารกันผ่านระบบ network และมีรูปแบบของการติดต่อผ่านสิ่งที่เรียกว่า API (Application Programming Interface) ไม่ว่าจะอยู่ในรูปแบบของ code หรือตาม protocol ต่าง ๆ ก็ว่าไป
2021-10-18 14:33:14 - @ratanon
โดยที่คุณสมบัติของ API มักจะประกอบไปด้วย
- Customer หรือ Consumer-driven
- ใช้งานง่าย หรือ ยากต่อการใช้ผิด
- ค้นหาได้ง่าย
- มีหน้าที่ที่ชัดเจน
- มีความปลอดภัย
- รองรับการใช้งานที่สูงขึ้น
- มีประสิทธิภาพที่ดี
- Backward-compatibility
- มีรูปแบบที่เป็นมาตรฐาน หรือ ทำงานร่วมกับระบบอื่น ๆ ได้ง่าย
เมื่อเราไปดูเรื่องของรูปแบบ API ระหว่างระบบหรือ service พบว่ามีหลายรูปแบบตามอายุหรือวิวัฒนาการเลย ซึ่งเรียงตามดังนี้
- RPC (Remote Procedure Call)
- CORBA (Common Object) Request Broker Architecture)
- XML-RPC
- SOAP (Simple Object Access Protocol)
- REST
- JSON-RPC
- GraphQL, Falcor
- gRPC
ปล. ใครรู้จักทั้งหมดนี้ แสดงว่าอายุไม่น้อยแล้วนะ !! ในแต่ละแบบนั้นล้วนมีข้อดีและข้อเสียแตกต่างกันไป รวมทั้ง use case ของการใช้งานเช่นกับ เช่น
- Abstraction ของข้อมูล
- การใช้งานที่ง่าย ในมุมมองของผู้ใช้งาน หรือ ผู้สร้าง
- แยกการทำงานกันชัดเจน หรือ ผูกมัดกันให้น้อย (Loose coupling)
- เรื่องของขนาดของ bandwidth ที่ใช้งาน
- Learning curve
ผู้นำไปใช้งานนั้น จำเป็นต้องรู้และเข้าใจเช่นกันว่า รูปแบบของ API แต่ละอย่างเป็นอย่างไร มีข้อดีข้อเสียกับ use case ของเราอย่างไร เพื่อช่วยให้เราเลือกได้อย่างเหมาะสม ลองศึกษาเพิ่มเติมกันดูครับ