PutsReq
PutsReq lets you record HTTP requests and simulate responses like no other tool available. Try it now!
Check this post: Play Rock-paper-scissors with Slack and PutsReq for some other examples.
Getting Started
Steps to run PutsReq in development.
Install MongoDB
brew install mongo
mongod
Start PutsReq
cd ~/workspace
git clone [email protected]:phstc/putsreq.git
cd putsreq
bundle install
rails s
open http://localhost:3000
Response Builder
The Response Builder is the place where you can create your responses using JavaScript V8.
Here is the list of request attributes you can access to create your responses:
request
// curl -X POST -H 'X-MyHeader: MyHeaderValue' -d 'name=Pablo' https://putsreq.com/<YOUR-TOKEN>
request.request_method;
// => POST
request.body;
// => name=Pablo
request.params.name;
// => Pablo
request.headers['HTTP_X_MYHEADER'];
// => MyHeaderValue
Parsing a JSON request:
// curl -i -X POST -H 'Content-Type: application/json' -d '{"message":"Hello World"}' https://putsreq.com/<YOUR-TOKEN>
var parsedBody = JSON.parse(request.body);
parsedBody.message;
// => Hello World
response
response.status = 200; // default value
response.headers = {}; // default value
response.body = 'ok'; // default value
Returning a JSON response:
response.headers['Content-Type'] = 'application/json';
response.body = { 'message': 'Hello World' };
forwardTo
If you only want to log your requests, you can use PutsReq as a proxy to forward them.
request.forwardTo = 'http://example.com/api';
You can also modify the requests before forwarding them.
// add or change a header
request.headers['X-MyNewHeader'] = 'MyHeaderValue'
var parsedBody = JSON.parse(request.body);
// add or change a value
parsedBody['my_new_key'] = 'my new value';
request.body = parsedBody;
request.forwardTo = 'http://example.com/api';
CLI
Want to test Webhook calls against your localhost? PutsReq makes it easy!
You can think of it, as a kind of ngrok, but instead of creating a tunnel to your localhost, PutsReq polls requests from YOUR-PUTSREQ-TOKEN and forwards to your localhost.
gem install putsreq
putsreq forward --to http://localhost:3000 --token YOUR-TOKEN
Listening requests from YOUR-TOKEN
Forwarding to http://localhost:3000
Press CTRL+c to terminate
2016-12-21 20:49:54 -0200 POST 200
Ajax
PutsReq supports CORS, so you can use it to test your Ajax calls.
<html>
<head>
<title>Your Website</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script>
// Sample PutsReq Response Builder
// https://putsreq.com/<YOUR-TOKEN>/inspect
// response.headers['Content-Type'] = 'application/json';
// response.body = { 'message': 'Hello World' };
// Sample Ajax call
$.get('https://putsreq.com/<YOUR-TOKEN>', function(data) {
alert(data.message);
// => 'Hello World'
});
</script>
</head>
<body>
</body>
</html>
Sample Integration Tests
https://github.com/phstc/putsreq_integration_sample
License
Please see LICENSE for licensing details.