La società per cui lavoro mantiene un prodotto SaaS di successo che è cresciuto "organicamente" nel corso degli anni. Stiamo progettando di espandere la linea con una suite di nuovi prodotti che condivideranno i dati con il prodotto esistente. Per supportare questo, stiamo cercando di consolidare la logica aziendale in un unico luogo: un livello di servizio web. Il layer WS verrà utilizzato da:
- Le applicazioni web
- Uno strumento per importare i dati
- Uno strumento da integrare con altri software client (non un'API di per sé)
Vogliamo anche creare un'API che possa essere utilizzata dai nostri clienti che sono in grado di utilizzarla per creare le proprie integrazioni. Siamo alle prese con la seguente domanda:
Se l'API interna (ovvero il livello WS) e l'API esterna sono uno nella stessa, con le impostazioni di sicurezza e autorizzazione per controllare cosa può essere fatto da chi, o dovrebbero essere due applicazioni separate in cui l'API esterna chiama l'API interna come qualsiasi altra applicazione? Finora nel nostro dibattito sembra che separarli potrebbe essere più sicuro, ma aggiungerà un sovraccarico.
Cosa hanno fatto gli altri in una situazione simile?