Компания, в которой я работаю, поддерживает успешный продукт SaaS, который «органично» рос за эти годы. Мы планируем расширить линейку новыми продуктами, которые будут обмениваться данными с существующим продуктом. Чтобы поддержать это, мы стремимся объединить бизнес-логику в одном месте: уровень веб-службы. Слой WS будет использоваться:
- Веб-приложения
- Инструмент для импорта данных
- Инструмент для интеграции с другим клиентским программным обеспечением (не API по сути)
Мы также хотим создать API, который может использоваться нашими клиентами, которые могут использовать его для создания своих собственных интеграций. Мы боремся со следующим вопросом:
Должны ли внутренний API (он же уровень WS) и внешний API быть одним и тем же, с настройками безопасности и разрешений для управления тем, что может делать кто, или они должны быть двумя отдельными приложениями, где внешний API просто вызывает внутренний API как и любое другое приложение? Пока что в наших дебатах кажется, что их разделение может быть более безопасным, но добавит накладных расходов.
Что другие сделали в подобной ситуации?