0

Download API Responses in Small Chunks

  • 2 mths ago

Description 

Some web API responses are quite long, and it is useful to have the client download the response in small pieces or resume a download if the download is interrupted; for example, when the Internet connection is unstable.   

Used With: This function is used with the WebServicesFramework in LogicNets v8.1+.  

Details

LogicNets’ WebServicesFramework supports downloading a response in smaller chunks by passing the HTTP Range header (https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range):  

GET /yourcompany/yourapi/endpoint
HTTP/1.1
Range: bytes=0-1000 Authorization:
Basic **** Accept: */*

In this case, the response is not written back to the client directly, but the API returns a 202 Accepted status response, Content-Range that contains the size of the actual response in bytes, Accept-Ranges, and a Location URL header you can use to retrieve the actual result. 

HTTP/1.1 202 Accepted
LN-STATUS: 202 Accepted
Location: /yourcompany/async.lns?_asyncid=abc&_session=123
Content-Range: bytes */2000
Accept-Ranges: bytes

 
The client can start downloading the result by calling the Location URL multiple times for each chunk. 

Chunk 1

GET /yourcompany/async.lns?_asyncid=abc&_session=123 HTTP/1.1
Range: bytes=0-1000

Chunk 2 

GET /yourcompany/async.lns?_asyncid=abc&_session=123 HTTP/1.1
Range: bytes=1001-2000
Reply Oldest first
  • Oldest first
  • Newest first
  • Active threads
  • Popular
Like Follow
  • 2 mths agoLast active
  • 1Views
  • 1 Following

Home