Компанія, над якою працюю, підтримує успішний продукт SaaS, який росло "органічно" протягом багатьох років. Ми плануємо розширити лінійку набором нових продуктів, які будуть обмінюватися даними з існуючим продуктом. Щоб підтримати це, ми прагнемо об'єднати бізнес-логіку в єдине місце: рівень веб-сервісу. Шар WS буде використовуватися:
- Веб-додатки
- Інструмент для імпорту даних
- Інструмент для інтеграції з іншим клієнтським програмним забезпеченням (не API)
Ми також хочемо створити API, який може бути використаний нашими клієнтами, які здатні використовувати його для створення власних інтеграцій. Ми боремося з наступним питанням:
Якщо внутрішній API (він же рівень WS) та зовнішній API мають одне і те ж, з налаштуваннями безпеки та дозволу для контролю того, що може робити хто, або вони повинні бути двома окремими програмами, коли зовнішній API просто викликає внутрішній API як і будь-яке інше додаток? Поки в нашій дискусії видається, що розділення їх може бути більш безпечним, але додасть накладні витрати.
Що зробили інші у подібній ситуації?