HTTP request client for APIs, based on request
$ npm install --save request-ajax
Below is a example of usage.
var express = require('express');
var ajax = require('request-ajax');
var app = express();
app.get('/', function(req, res, next){
ajax({
// only JSON API is supported
url: 'http://my-api.com/users.json'
// your API auth
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
// callbacks
error: function(apiRequestError, apiResponse, statusCode) {
next(apiRequestError || new Error('API error: ' + apiResponse.body));
},
success: function(data, apiResponse, statusCode) {
var userCount = data.length;
res.send('user count: ' + userCount);
},
complete: function(apiRequestError, isApiSuccess, apiResponse) {
// ...
}
});
});
API url, https
will be removed from the url
default undefined
if function
: this function will be called to let you replace the url with something different.
For example: replacing https://
with http://
or using a local DNS/IP.
ajax({
url: 'https://my-api.com/users.json',
prefilterUrl: function(url) {
return url && url.replace(new RegExp('^https://'), 'http://');
}
});
default 'GET'
HTTP method to use for the request e.g. 'POST'
same as method
default {}
, custom headers
headers: {
'X-FOO': 'BAR'
}
default undefined
, sets Accept-Language
header
default undefined
, sets Bearer
requestOptions.auth = {
bearer: options.accessToken
};
more about request auth option
default undefined
, sets Authorization
header
requestOptions.headers.Authorization = 'Basic ' + new Buffer(options.apiClientId + ':').toString('base64');
requestOptions.headers.Origin = options.origin;
default undefined
, sets Bearer
requestOptions.auth = {
user: options.clientId,
pass: options.clientSecret
};
more about request auth user/pass option
accessToken
wins over apiClientId, origin
wins over clientId, clientSecret
default undefined
, proxy to the request timeout option
json
objectapiResponse
request response objectstatusCode
intmoduleError
Error instance
Backbone tests were copied form artsy/backbone-super-sync