Skip to content

Latest commit

 

History

History

example

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cowboy Trails Example

===

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

  rebar3 compile

To start the example server in a interactive way do this:

  rebar3 shell

Handlers Description

if you run this curl command, you will see all trails description of this server.

curl -i http://localhost:8080/description

[#{constraints => [],
   handler => cowboy_static,
   metadata => #{get => #{desc => "Static Data"}},
   options => {priv_dir,example,[],[{mimetypes,cow_mimetypes,all}]},
   path_match => <<"/[...]">>},
 #{constraints => [],
   handler => example_echo_handler,
   metadata => #{get => #{desc => "Gets echo var in the server"},
     put => #{desc => "Sets echo var in the server"}},
   options => [],
   path_match => <<"/message/[:echo]">>},
 #{constraints => [],
   handler => example_description_handler,
   metadata => #{get => #{desc => "Retrives trails's server description"}},
   options => [],
   path_match => <<"/description">>}]

Poor-Man's Key-Value Store

There is an additional endpoint that implement a really simple key-value store that uses the application's env variable as its backend. It is possible to PUT, GET and DELETE values in the following way:

$ curl -XPUT "localhost:8080/poor-kv/some-key/some-value" -H "content-type: text/plain"

some-value

$ curl -XGET "localhost:8080/poor-kv/some-key" -H "content-type: text/plain"

some-value

$ curl -v -XGET "localhost:8080/poor-kv/non-existing-key" -H "content-type: text/plain"

...
< HTTP/1.1 404 Not Found
...

$ curl -v -XDELETE "localhost:8080/poor-kv/some-key" -H "content-type: text/plain"

...
< HTTP/1.1 204 No Content
...

$ curl -v -XDELETE "localhost:8080/poor-kv/some-key" -H "content-type: text/plain"

...
< HTTP/1.1 404 Not Found
...