Skip to content

Latest commit

 

History

History

rest-stream-response

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

REST streaming example

To try this example, you need GNU make and git in your PATH.

If you don’t have HTTPie installed, use the appropriate cURL commands instead.

Building

To build the example, run the following command:

make

Starting

Release

To start the release in the foreground:

./_rel/rest-stream-response-example/bin/rest-stream-response-example console

Note: The previous command also starts an Erlang console.

LFE

To start the app and an LFE shell:

lfe -pa ebin -pa deps/*/ebin -s rest-stream-response # make dev

Usage

Point your browser at http://localhost:8080, or use http to see the rows arriving one at a time every half second.

This example simulates streaming a large amount of data from a data store one record at a time in CSV format. It also uses a constraint to ensure that the last segment of the route is an integer.

Example output

Fetch records with the second field with value 1

http -vS :8080
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: localhost:8080
User-Agent: HTTPie/0.9.3
HTTP/1.1 200 OK
connection: close
content-type: text/csv
date: Wed, 06 Jan 2016 06:49:34 GMT
server: Cowboy
transfer-encoding: identity

One every half second:

Dw8LBBQA,1,46
GAoZChcG,1,24
AQkCAhQQ,1,22

Fetch records with the second field with value 4

http -vS :8080/5
GET /4 HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: localhost:8080
User-Agent: HTTPie/0.9.3
HTTP/1.1 200 OK
connection: close
content-type: text/csv
date: Wed, 06 Jan 2016 06:51:20 GMT
server: Cowboy
transfer-encoding: identity

One every half second:

BBEBEQAU,4,49
ABcFDxcE,4,42
FA8QDwEZ,4,40

Fail to use a proper integer and get an error

http -vS :8080/foo
GET /foo HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: localhost:8080
User-Agent: HTTPie/0.9.3
HTTP/1.1 404 Not Found
content-length: 0
date: Wed, 06 Jan 2016 06:53:38 GMT
server: Cowboy