A Grape API mounted on Rack.
- ping: a hello world example that returns a JSON document
- post_put: a simple
POST
andPUT
example - post_json: an example that shows a
POST
of JSON data - get_json: an example that pre-processes params sent as JSON data
- rescue_from: an example of
rescue_from
that wraps all exceptions in an HTTP error code 500 - path_versioning: an example that uses path-based versioning
- header_versioning: an example that uses vendor header-based versioning
- wrap_response: a middleware that wraps all responses and always returns HTTP code 200
- content_type: an example that overrides the default
Content-Type
or returns data in both JSON and XML formats - upload_file: an example that demonstrates a file upload and download
- entites: an example of using grape-entity
There's a deployed grape-on-rack on Heroku.
$ bundle install
$ rackup
Loading NewRelic in developer mode ...
[2013-06-20 08:57:58] INFO WEBrick 1.3.1
[2013-06-20 08:57:58] INFO ruby 1.9.3 (2013-02-06) [x86_64-darwin11.4.2]
[2013-06-20 08:57:58] INFO WEBrick::HTTPServer#start: pid=247 port=9292
Navigate to http://localhost:9292/api/ping with a browser or use curl
.
$ curl http://localhost:9292/api/ping
{"ping":"pong"}
$ curl http://localhost:9292/api/plain_text
A red brown fox jumped over the road.
$ curl -X POST -i -F image_file=@spec/fixtures/grape_logo.png http://localhost:9292/api/avatar
{"filename":"grape_logo.png","size":4272}
$ curl -X POST -i -F file=@spec/fixtures/grape_logo.png http://localhost:9292/api/download.png
$ curl -X POST -i -F file=@api/ping.rb http://localhost:9292/api/download.rb
rake routes
Explore the API using Swagger UI. Run the application and point the explorer to http://localhost:9292/api/swagger_doc
or http://grape-on-rack.herokuapp.com/api/swagger_doc
.
The application is setup with NewRelic w/ Developer Mode. Navigate to http://localhost:9292/newrelic after making some API calls.