Purpose:
Serve fixtured API responses quickly and easily.
Runs a tiny sinatra server that serves static .json files or dynamic .rb files from disk.
Control which fixtures are being used at localhost:port/test-panel
Great for QA and fast prototyping.
Installation:
From Rubygems:
just gem install json-rigs
From Source:
Check out this repo, cd into it, then
$ bundle install
...
$ gem build json-rigs.gemspec
...
$ gem install json-rigs
Usage:
Make a folder called "fixtures" wherever you'd like to keep your fixtures.
-
Place
.jsonfiles inside folders inside the fixtures folder as follows:./fixtures/[url]/[HTTP method]/[response type].json(e.g../fixtures/users/GET/success.json) -
Place
.rbfiles in the same manner..rbfiles should be of the form:
lambda {|params|
if params['data']
hash = {success: true, dynamic: "param 'data' was #{params['data']}"}
else
hash = {success: false, error: "param 'data' was missing!"}
end
JSON.generate(hash)
}
jrigs start from the folder one level above "fixtures" (e.g., if fixtures is at ~/Code/my-api/fixtures, run jrigs start from ~/Code/my-api)
Choose which fixtures you want active at localhost:3000/test-panel
Use localhost:3000 as if it were your normal API server! E.g., curl localhost:3000/resource will return the contents of ./fixtures/resource/GET/success.json if you chose the success fixture at localhost:3000/test-panel, or ./fixtures/resource/GET/failure.json if you chose the failure fixture, etc.
Debugging:
Run with jrigs start -t to get error print-out in your terminal. Ping me if you can't figure out how to fix it!