Sto sviluppando un'API REST che accetta JSON utilizzando Spring Boot. Io uso Spring Security per l'autenticazione. Ho un caso d'uso in cui ho due servizi, uno per testare la connessione a un sistema di terze parti e l'altro per recuperare i dati dal sistema di terze parti.
- api / sistema / connessione
- API / Sistema / CustomData
Quando chiamo il primo servizio, controllo se riesco a collegarmi correttamente al sistema di terze parti. Se sì, restituisco un messaggio "Success" o "Failure". Quando provo a effettuare la seconda chiamata per ottenere dati personalizzati, mi aspetto che la richiesta di avere le informazioni di accesso al sistema di terze parti sia presente nella richiesta. Creo nuovamente una nuova connessione e recupero i dati personalizzati e restituisco i dati. Il problema con questo approccio è che creo oggetti di connessione ogni volta che consuma molto tempo per ogni richiesta.
Per evitare questo sovraccarico, dovrei cambiare la seconda richiesta in questo modo
API / Sistema / connessione /? / CustomData
Ma per fare ciò, cosa devo restituire nel primo servizio che verifica la connessione?
- Devo restituire la connessione stessa? È possibile convertire l'oggetto di connessione in un JSON e deserializzare quando arriva la seconda richiesta? È anche una cosa sicura da fare?
- Devo memorizzare in cache questa connessione a sistemi di terze parti sul lato server e restituire un ID univoco per ciascuna connessione? Ma questo non infrange la natura RESTful dell'API?
O c'è un approccio diverso su come posso affrontare questo problema.
TIA.