1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
REST streaming example
======================
To try this example, you need GNU `make`, `git` and
[relx](https://github.com/erlware/relx) in your PATH.
To build the example, run the following command:
``` bash
$ make
```
To start the release in the foreground:
``` bash
$ ./_rel/bin/rest_stream_response_example console
```
Then point your browser at [http://localhost:8080](http://localhost:8080).
About
-----
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:
``` bash
$ curl -i localhost:8080
HTTP/1.1 200 OK
transfer-encoding: identity
server: Cowboy
date: Sun, 10 Feb 2013 19:32:16 GMT
connection: close
content-type: text/csv
DBUZGQ0C,1,28
BgoQAxMV,1,6
DAYEFxER,1,18
...
```
Fetch records with the second field with value 4:
``` bash
$ curl -i localhost:8080/4
HTTP/1.1 200 OK
transfer-encoding: identity
server: Cowboy
date: Sun, 10 Feb 2013 19:34:31 GMT
connection: close
content-type: text/csv
ABcFDxcE,4,42
DgYQCgEE,4,5
CA8BBhYD,4,10
...
```
Fail to use a proper integer and get an error:
``` bash
$ curl -i localhost:8080/foo
HTTP/1.1 404 Not Found
connection: keep-alive
server: Cowboy
date: Sun, 10 Feb 2013 19:36:16 GMT
content-length: 0
```
|