Firma, dla której pracuję, utrzymuje udany produkt SaaS, który z biegiem lat rozwijał się „organicznie”. Planujemy rozszerzyć linię o pakiet nowych produktów, które będą dzielić dane z istniejącym produktem. Aby to wesprzeć, chcemy skonsolidować logikę biznesową w jednym miejscu: warstwie usług internetowych. Warstwa WS będzie używana przez:
- Aplikacje internetowe
- Narzędzie do importowania danych
- Narzędzie do integracji z innym oprogramowaniem klienckim (nie API jako takim)
Chcemy również stworzyć interfejs API, który może być używany przez naszych klientów, którzy mogą go używać do tworzenia własnych integracji. Zmagamy się z następującym pytaniem:
Czy wewnętrzny interfejs API (zwany również warstwą WS) i zewnętrzny interfejs API powinny być takie same, z ustawieniami zabezpieczeń i uprawnień do kontrolowania tego, co może zrobić osoba, lub powinny to być dwie oddzielne aplikacje, w których zewnętrzny interfejs API po prostu wywołuje wewnętrzny interfejs API jak każda inna aplikacja? Jak dotąd w naszej debacie wydaje się, że ich rozdzielenie może być bezpieczniejsze, ale spowoduje dodatkowe obciążenie.
Co zrobili inni w podobnej sytuacji?