บริษัท ที่ฉันทำงานเพื่อรักษาผลิตภัณฑ์ SaaS ที่ประสบความสำเร็จซึ่งเติบโตขึ้นอย่าง "เป็น" ในช่วงหลายปีที่ผ่านมา เราวางแผนที่จะขยายสายผลิตภัณฑ์ใหม่ที่จะใช้ข้อมูลร่วมกันกับผลิตภัณฑ์ที่มีอยู่ เพื่อสนับสนุนสิ่งนี้เราต้องการรวมตรรกะทางธุรกิจไว้ในที่เดียวนั่นคือเลเยอร์บริการเว็บ เลเยอร์ WS จะถูกใช้โดย:
- เว็บแอพพลิเคชั่น
- เครื่องมือในการนำเข้าข้อมูล
- เครื่องมือที่จะรวมเข้ากับซอฟต์แวร์ไคลเอ็นต์อื่น ๆ (ไม่ใช่ API ต่อ se)
เราต้องการสร้าง API ที่ลูกค้าของเราสามารถใช้เพื่อสร้างการรวมระบบของพวกเขาเอง เรากำลังดิ้นรนกับคำถามต่อไปนี้:
ควรใช้ API ภายใน (รู้จักกันว่าเลเยอร์ WS) และ API ภายนอกเป็นหนึ่งเดียวกันพร้อมการตั้งค่าความปลอดภัยและการอนุญาตเพื่อควบคุมสิ่งที่สามารถทำได้โดยใครหรือควรเป็นสองแอปพลิเคชันแยกต่างหากที่ API ภายนอกเรียก API ภายใน ชอบแอปพลิเคชันอื่นหรือไม่ จนถึงตอนนี้การถกเถียงของเราดูเหมือนว่าการแยกพวกเขาอาจปลอดภัยมากขึ้น แต่จะเพิ่มค่าใช้จ่าย
คนอื่น ๆ ทำอะไรในสถานการณ์คล้ายกัน