CoinRack

A simple Rack application that provides a REST interface to Coin's API.

Quick Start

Run the server

$ gem install coin_rack
$ coin_rack --run

Make some client requests

$ curl --data "value=true" http://localhost:9292/example.json
{"example":true}

$ curl http://localhost:9292/example.json
{"example":true}

$ curl -X DELETE http://localhost:9292/example.json
{"example":true}

$ curl http://localhost:9292/example.json
{"example":null}

Prefer XML?

$ curl --data "value=true" http://localhost:9292/example.xml
<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <example type="boolean">true</example>
</hash>

$ curl http://localhost:9292/example.xml
<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <example type="boolean">true</example>
</hash>

$ curl -X DELETE http://localhost:9292/example.xml
<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <example type="boolean">true</example>
</hash>

$ curl http://localhost:9292/example.xml
<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <example nil="true"/>
</hash>

URL Definition

                  cache key
                       |
http://localhost:9292/KEY.FORMAT
                            |
                    response format

Note: The XML format is also supported but XML examples have been omitted for brevity.

POST/PUT

Create and/or update the key to a new value.

Params

  • value - the value to assign

Request URI

http://localhost:9292/example.json

Request Body

value=true

Response

"{\"example\":\"true\"}"

GET

Get the current value for the specified key.

Request URI

http://localhost:9292/example.json

Response

"{\"example\":\"true\"}"

DELETE

Deletes the key.

Request URI

http://localhost:9292/example.json

Response

Note the value returned is the value that was deleted.

"{\"example\":true}"