Reviewing the Delivery API design
This the design that was created in R2: please document improvements proposed Agreed input/output and SPI
The main API call called for delivery is getFileSignedURLs(). Passing in the list of SRNs, it expects a list of file signed URLs in the JSON format below (output). We're generalizing using a String for the response (for now) to avoid pitfalls of strongly typing the response and reduce re-work when more functionality is added.
Delivery::GetFileSignedURL::Post - Input
{ srns: ["srn1", "srn2", "srn3"] < R2: required }
Delivery::GetFileSignedURL::Post - Output
{ "unprocessed": ["srn1", "srn2"], "processed": { "srn3": { "signedUrl": "https://...", < R2: required "unsignedUrl": "...", < R2: Not required. Future extension point "kind": "..." < R2: Not required. Future extension point } } }
SPI
public interface ISignedURLService { String getFileSignedURLS(List srns); < R2: JSON representation of the API Output }
Example query Implemented in this Story:
{ "SRNS": [ "srn:file/csv:a88797521dd111eab9ceff4274137c5c:1", … ] }
####Example query phase 2 (used for reference): { "SRNS": ["srn:master-data/Well:8438:", "srn:work-product-component/WellboreMarker:8438_csv:", "srn:file/csv:a88797521dd111eab9ceff4274137c5c:1"] }