-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make it possible to Data API act as a htsget proxy #51
Comments
@AlexanderSenf @blankdots @dtitov Comments about this? :) |
My two thoughts:
The caching solution might also work; although I would prefer simply forwarding the request, I think. But I am open to any solution.. Zuul itself should not be doing too much "work" however - the htsget functionality should be a step behind, so in DataEdge, or a new htsget proxy microservice. |
We ended up using proposed solution number 1). The required configuration for Zuul is:
And with that the following query redirects to another Data API:
No code changes were needed but of course this is just simple proxy without caching. |
We have a use case in Tryggve project where user wants to stream data from multiple htsget endpoints but doesn't have network access to all of them due security reasons (so they are not visible to public network) but the Data API servers can access each others endpoints.
Therefore we need to have a proxy service that fetches the data from another endpoint, caches that and serves the content to the original requestor. So when user is going make following query to Data API
GET https://data-api.csc.fi/another-endpoint/data/reads
Data API should then fetch the data from another endpoint:
GET https://another-endpoint.se/data/reads
And serve the content to the original requestor.
In order to make this work it is necessary to have endpoint names and URL mapped in database or in configuration. In Data API the flow would be following:
Most likely Zuul service is the right component to do this feature.
The text was updated successfully, but these errors were encountered: