Gallop
Gallop polls REST APIs at particular intervals to listen for changes.
Installation
Gallop is available on the NPM registry.
npm install gallop
Usage
var gallop = require('gallop')({
interval: 10
});
// Add a target.
gallop.subscribe('//api-endpoint.provider.com/api', null, function(err, result, httpResponse){
if(err){
return console.error(err);
}
console.log(result);
})
// Start listening.
gallop.start();
Documentation
Gallop
Requiring Gallop exposes a Gallop constructor. This object serves as a daemon which listens to requests in the background. Arguments:
options
-- An optional options object with keys:interval
-- The polling interval in milliseconds. Defaults to 1 minute.
var Gallop = require('gallop');
var daemon = new Gallop({
interval: 500
});
Creating targets
A Gallop daemon subscribes to targets, which are composed of a REST API URL, an options object for the request, and a callback that fires whenever the response from that API endpoint changes. Arguments:
url
-- A string endpoint URLoptions
-- An options object for the request -- see documentation for Restler's optionscallback
-- A callback that takeserr
,result
, andhttpResponse
to be called whenever the data changes
daemon.subscribe('//api-endpoint.provider.com/api', {
method: 'GET',
query: {
api_key: 'some API key',
some_field: 'some data for the field'
// ...
}
}, function(err, result, httpResponse) {
if (err) {
return console.error(err);
}
console.log(result);
});
subscribe
returns a target ID, which can be passed to unsubscribe
to remove the target.
// Save the target ID.
var id = daemon.subscribe( /* ... */ );
// Unsubscribe from the target.
daemon.unsubscribe(id);
Listening for changes
The Gallop daemon can start
and stop
; stopping in the middle of the polling cycle will complete the current cycle.
daemon.start();
// Some time later...
daemon.stop();
License
© 2013 Lehao Zhang. Released under the terms of the MIT license.