Skip to content

knightq/grape-on-rack

 
 

Repository files navigation

Grape API on Rack

Build Status

A Grape API mounted on Rack.

  • ping: a hello world example that returns a JSON document
  • post_put: a simple POST and PUT example
  • post_json: an example that shows a POST of 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

See

There's a deployed grape-on-rack on Heroku.

Run

$ 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 

Hello World

Navigate to http://localhost:9292/api/ping with a browser or use curl.

$ curl http://localhost:9292/api/ping {"ping":"pong"} 

Get Plain Text

$ curl http://localhost:9292/api/data A red brown fox jumped over the road. 

Upload a File

$ curl -X POST -i -F image_file=@spec/fixtures/grape_logo.png http://localhost:9292/api/avatar {"filename":"grape_logo.png","size":4272} 

Upload and Download a File

$ 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 

List Routes

rake routes 

Explore the API

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.

New Relic

The application is setup with NewRelic w/ Developer Mode. Navigate to http://localhost:9292/newrelic after making some API calls.

About

A demo Grape API mounted on RACK.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published