This repo used to be located at https://github.com/exacttarget/Fuel-Node-REST
This library allows users access to the Salesforce Marketing Cloud (formerly ExactTarget) REST API at a low level.
npm install fuel-rest --save
new FuelRest(options) - Initialization
options.auth
- Required: yes
- Type:
Object
or FuelAuth Instance - properties need to match FuelAuth
options.origin
oroptions.restEndpoint
- Required: no
- Type:
String
- Default: https://www.exacttargetapis.com
options.headers
- Required: no
- Type:
Object
- set headers that apply to all REST requests (not auth requests)
- apiRequest(options, callback)
options
- see request modules optionsoptions.auth
- will be passed into getAccessToken inside Fuel Authoptions.uri
- can either be a full url or a path that is appended tooptions.origin
used at initialization (url.resolve)options.retry
- boolean value representing whether or not to retry request (and request new token) on 401 invalid token response.default: false
callback
- executed after task is completed.- if no callback is passed, you'll need to use the promise interface
- get | post | put | patch | delete(options, callback)
options
- see apiRequest optionsoptions.retry
- see above for description.default: true
callback
- see apiRequest options- Request method will be overwritten by these methods. It will be set to same value as the name of the method used
var FuelRest = require('fuel-rest');
var options = {
auth: {
// options you want passed when Fuel Auth is initialized
clientId: 'clientId'
, clientSecret: 'clientSecret'
}
, origin: 'https://alternate.rest.endpoint.com' // default --> https://www.exacttargetapis.com
};
var RestClient = new FuelRest(options);
var options = {
uri: '/platform/v1/endpoints',
headers: {}
// other request options
};
// CANNOT USE BOTH CALLBACKS AND PROMISES TOGETHER
RestClient.get(options, function(err, response) {
if(err) {
// error here
console.log(err);
}
// will be delivered with 200, 400, 401, 500, etc status codes
// response.body === payload from response
// response.res === full response from request client
console.log(response);
});
// or with promises
RestClient
.get(options)
.then(function(response) {
// will be delivered with 200, 400, 401, 500, etc status codes
// response.body === payload from response
// response.res === full response from request client
console.log(response);
})
.catch(function(err) {
// error here
console.log(err);
});
});
- Alex Vernacchia (author) - twitter, github
- Kelly Andrews - twitter, github
- David Brainer-Banker - twitter, github
We welcome all contributions and issues! There's only one way to make this better, and that's by using it. If you would like to contribute, please checkout our guidelines!
- See tags/release page for release notes after 0.7.2
- 0.7.2 - 2014-10-16 - account for content-type header not being present on API response
- 0.7.1 - 2014-09-09 - removed unneeded "!!"
- 0.7.0 - 2014-08-29 (public release, 1st npm version)
- request retry on 401 invalid token response
- created helpers file for certain functions
- updated error delivering/throwing
- 0.6.0 - 2014-08-26 - added patch method
- 0.5.0 - 2014-08-26 - API overhaul (apiRequest + all http methods) - breaking
- 0.4.0 - 2014-08-25 - changed object initialization - breaking
- 0.3.0 - 2014-08-20
- added ability to use initialized fuel auth
- updated travis ci config
- added license
- 0.2.0 - 2014-08-09 - removed event emitter - breaking
- 0.1.0 - 2014-08-07
- initial module
- initial unit tests