This PR implements an additional storage backend called UrlStorage, which can fetch data from HTTP URLs. With UrlStorage, when htsget-rs receives a query, it will fetch data for the request from a HTTP URL, forwarding any headers received in the query. To implement this, a new feature flag is included called url-storage.
Changes
Add UrlStorage as a storage backend for HTTP URLs.
Can be configured by setting a url in the config.
scheme and forward_headers in the config affects the returned ticket responses, and is optional.
Refactor and simplify some logic in htsget-config and htsget-http.
Include stronger type parsing for htsget-config.
Remove repeated logic in htsget-http.
Remove s3-storage as the default feature flag, and require this to be set manually.
Pass request and header information with Query struct, so that it can be used by htsget-search.
Format parsing is now case-insensitive in htsget-http.
The headers field in a htsget ticket can now include multiple headers with the same key.
When multiple headers with the same key are present, the values are serialized as a comma-separated list.
Rename AwsS3Storage to S3Storage to match htsget-config.
Additional tests for UrlStorage and other features.
Bug fixes
htsget-http now returns InvalidInput when query parameters are present for POST requests, like the protocol suggests.
Fix an issue with LocalStorage on windows returning incorrect URL path segments, i.e. they contained \ instead of /.
Closes #165.
This PR implements an additional storage backend called
UrlStorage
, which can fetch data from HTTP URLs. WithUrlStorage
, when htsget-rs receives a query, it will fetch data for the request from a HTTP URL, forwarding any headers received in the query. To implement this, a new feature flag is included calledurl-storage
.Changes
UrlStorage
as a storage backend for HTTP URLs.url
in the config.scheme
andforward_headers
in the config affects the returned ticket responses, and is optional.s3-storage
as the default feature flag, and require this to be set manually.Query
struct, so that it can be used byhtsget-search
.htsget-http
.headers
field in a htsget ticket can now include multiple headers with the same key.AwsS3Storage
toS3Storage
to match htsget-config.UrlStorage
and other features.Bug fixes
htsget-http
now returnsInvalidInput
when query parameters are present for POST requests, like the protocol suggests.LocalStorage
on windows returning incorrect URL path segments, i.e. they contained\
instead of/
.