request-ajax
v1.2.0
Published
HTTP request client for APIs, based on request
Downloads
10
Readme
request-ajax
HTTP request client for APIs, based on request
Install
$ npm install --save request-ajax
Usage
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) {
// ...
}
});
});
Options
url
, required
API url, https
will be removed from the url
prefilterUrl
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://');
}
});
method
default 'GET'
HTTP method to use for the request e.g. 'POST'
type
same as method
headers
default {}
, custom headers
headers: {
'X-FOO': 'BAR'
}
locale
default undefined
, sets Accept-Language
header
accessToken
default undefined
, sets Bearer
requestOptions.auth = {
bearer: options.accessToken
};
more about request auth option
apiClientId, origin
default undefined
, sets Authorization
header
requestOptions.headers.Authorization = 'Basic ' + new Buffer(options.apiClientId + ':').toString('base64');
requestOptions.headers.Origin = options.origin;
clientId, clientSecret
default undefined
, sets Bearer
requestOptions.auth = {
user: options.clientId,
pass: options.clientSecret
};
more about request auth user/pass option
auth note:
accessToken
wins over apiClientId, origin
wins over clientId, clientSecret
timeout
default undefined
, proxy to the request timeout option
Callbacks
success(json, apiResponse, statusCode)
error(moduleError, [apiResponse, statusCode])
complete(moduleError, isApiSuccess, [apiResponse, statusCode])
json
objectapiResponse
request response objectstatusCode
intmoduleError
Error instance
Backbone tests were copied form artsy/backbone-super-sync