ข้อดีและข้อเสียของการจัดการ versioning - konlawatit/SWDEV-BBP-PLUS GitHub Wiki
ข้อดี
- แยกส่วนการใช้งาน API จากผู้ใช้งาน ผู้ใช้งานจะเห็นเพียง API จาก gateway เท่านั้น ว่าต้องส่ง request ไปที่ไหนมี input อย่างไร ได้ output อย่างไร วิธีการนี้จะส่งผลดีต่อการแก้ไขปรับปรุง API ที่อยู่ด้านในระบบ โดยไม่กระทบต่อผู้ใช้งานโดยตรง
- ใช้สำหรับป้องกันการโจมตีจากผู้บุกรุก ทั้ง SQL Injection, XML exploit และ Denial-of-Service (DoS) เนื่องจากเป็น layer ที่ผู้ใช้งานจากภายนอกจะเข้าถึง API ได้
- ช่วยลดความซับซ้อนของ service ต่าง ๆ ลงไป
- ทำให้ทดสอบระบบได้ง่ายขึ้น
ข้อเสีย
- เวลาขึ้น Version ใหม่ต้องทำ Adapter ขึ้นมาใหม่ ซึ่งบางครั้งหาก Structure มีการเปลี่ยนมากๆจะส่งผลเสีย ทั้งนี้รวมไปถึงการ Performance และ ระยะเวลากว่าข้อมูลจะไหลไปถึง Codebase อีกด้วย
- อาจมีการเกิดขึ้นของ Single Point of Failure ได้
- จำเป้นต้องใช้เครื่องมือ และ ระบบที่เหมาะสมกับการ Config และ Deploy ด้วย มิเช่นนั้นจะส่งผลเสียต่อประสิทธิภาพของงาน
วิธีการรับมือกับข้อเสีย
- ใช้หลักการ Micro service ในการพัฒนาเพื่อช่วยลด Single point of failure
- เลือกใช่เครื่องมือโดยพิจารณาจากความเหมาะสมและความคุ้นชินของสมาชิกในทีม