A empresa em que trabalho mantém um produto SaaS de sucesso que cresceu "organicamente" ao longo dos anos. Planejamos expandir a linha com um conjunto de novos produtos que compartilharão dados com o produto existente. Para apoiar isso, buscamos consolidar a lógica de negócios em um único local: uma camada de serviço da web. A camada WS será usada por:
- As aplicações web
- Uma ferramenta para importar dados
- Uma ferramenta para integração com outro software cliente (não uma API em si)
Também queremos criar uma API que possa ser usada por nossos clientes capazes de usá-la para criar suas próprias integrações. Estamos lutando com a seguinte pergunta:
A API interna (também conhecida como camada WS) e a API externa devem ser a mesma, com configurações de segurança e permissão para controlar o que pode ser feito por quem, ou devem ser dois aplicativos separados em que a API externa apenas chama a API interna como qualquer outra aplicação? Até o momento em nosso debate, parece que separá-los pode ser mais seguro, mas aumentará a sobrecarga.
O que os outros fizeram em uma situação semelhante?