xm-api-services-js
Version:
Node.js client library for xMatters API services.
87 lines (66 loc) • 2.24 kB
Markdown
Node.js Client for xMatters API Services
========================================
A simple http wrapper for consuming the xMatters REST API.
## Features
- **Retry on Failure** Automatically retry when intermittent failures occur.
Specifically, 429 and some 5xx errors are returned from the API.
- **Exponential Backoff** Requests are rate-limited by the client, which helps
prevent reaching the server-enforced rate limit.
## Quick Start
$ npm install xm-api-services-js
Create a new client object by calling `createClient()`
```js
var xMClient = require('xm-api-services-js').createClient({
host: 'mydomain.xmatters.com',
username: '<login id>',
password: '<password>'
});
```
The username and password properties are optional if provided as environment variables:
- XMATTERS_API_USERNAME
- XMATTERS_API_PASSWORD
Make requests to the xMatters APIs by calling methods on the client object. The client object has the following methods:
- `get`: the GET method takes a path, optional query string object, and a callback function
- `post`: the POST method takes a path, post body, and a callback function
- `put`: the PUT method takes a path, post body, and a callback function
- `delete`: the DELETE method takes a path and a callback function
```js
// Get Sites
xMClient.get('sites', function(err, response) {
if (!err) {
console.log(response.data);
}
});
//delete a person
xMClient.post('people',
{targetName: 'mmcbride',
firstName: 'Mary',
lastName: 'Mcbride',
roles: ['Standard User']},
function(err, response) {
if (!err) {
console.log(response.data);
}
});
// Get people
xMClient.get('people', function(err, response) {
if (!err) {
console.log(response.data);
}
});
// Get the second result set of people
xMClient.get('people', {offset: 1, limit: 5}, function(err, response) {
if (!err) {
console.log(response.data);
}
});
//delete a person
xMClient.delete('people/mmcbride', function(err, response) {
if (!err) {
console.log(response.data);
}
});
```
## Support
This library is community supported. If you find a bug, or have a feature suggestion, please
[log an issue][issues].