I am developing a REST API which accepts JSON using Spring Boot. I use Spring Security for authentication. I have a use case where I have two services, one to test connection to a 3rd party system and other one to fetch data from the 3rd party system.
When I call the first service, I check if I am able to connect successfully to the 3rd party system. If yes I return a "Success" or a "Failure" message. When I try to make the second call to get customData, I expect the request to have the login information to the 3rd party system to be present in the request. I again create a new connection and fetch the custom data and return the data. The problem with this approach is that I create connection objects every time which consumes a lot of time for each request.
In order to avoid this overhead I should be changing the second request as this
But for doing this, what should I return in the first service that tests the connection?
- Should I return the connection itself? Is it possible to convert the connection object to a JSON and deserialize it when it comes in the second request? Is it also a secure thing to do?
- Should I cache this connection to 3rd party system at the server side and return a unique id for each connection? But does this not break the RESTful nature of the API?
Or is there a different approach to how I can tackle this problem.