NOTE: I am no longer working on any projects related to Sonar Software. I've updated links to Sonar's new 2.0 API that utilizes GRAPHQL.
Node client for the sonar.software API
Sonar has moved on to version 2.0: 📖 sonar.software GRAPHQL 2.0 API
(Early release of the package only includes "getAll" and "get" requests! Plans for later releases will include "create", "delete", and "update" requests to the API)
- 0.2.7 fixes path generation for parameters that require arrays
Using npm:
npm install node-sonar-api
Require the package:
const sonar = require('node-sonar-api');
Create the sonar client:
let client = sonar.createClient({
sonarHost: "example.sonar.software",
sonarUsername: "sonarUser",
sonarPassword: "sonarPassword"
});
Now make requests to the Sonar API!
The below examples are all for "getAll" requests.
Using promises:
client.getAll.accounts()
.then(json => console.log(json));
Specifying parameters with an object:
client.getAll.accounts({
limit: 5,
page: 2
})
.then(json => console.log(json));
Using a callback:
client.getAll.accounts(json => {
console.log(json);
});
Specifying parameters with an object:
client.getAll.accounts({ limit: 5, page: 2 }, json => {
console.log(json);
});
Specifying an ID:
client.getAll.account.contacts(23673)
.then(json => console.log(json));
Specifying entity type:
client.getAll.notes('accounts', 23673)
.then(json => console.log(json));
The below examples are all for "get" requests.
All requests with "get" require an identifier.
Using promises:
client.get.Account(1)
.then(json => console.log(json));
Properties of an entity are accessed by lowercase:
client.get.account.address(1, 63)
.then(json => console.log(json));
Using a callback:
client.get.Account(1, json => {
console.log(json);
});
Specifying entity type:
client.get.task('accounts', 1, 203)
.then(json => console.log(json));
The below examples are "update" requests for /api/v1/accounts/...
All requests with "update" require an identifier.
Using promises:
client.update.Account(1, {
name: 'New Name Test'
})
.then(json => console.log(json));
Properties of an entity are accessed by lowercase:
client.update.account.address(1, 63, {
line1: 'AT%26T Center Parkway',
city: 'San Antontio',
state: 'TX',
county: 'Bexar Co.',
zip: '78219',
country: 'US'
})
.then(json => console.log(json));
📖 URL Encoding Special Character References
Using a callback:
client.update.Account(1, {
name: 'New Name Test'
}, json => {
console.log(json);
});
"update" functionality only implemented for the /api/v1/accounts/... portion of the API. This is for testing purposes as testing with the 'PATCH' requests are limited. If any problems are encountered while using the "update" functionality, please open an issue.
📖 sonar.software REST API
Sonar has moved on to version 2.0:
📖 sonar.software GRAPHQL 2.0 API
I am no longer working on any projects related to Sonar Software. Feel free to fork this project.