node-socrata
v0.0.50
Published
A node.js implementation for the Socrata Open Data API (SODA)
Downloads
65
Maintainers
Readme
##node-socrata## A Node.js interface to access the Socrata Open Data API (SODA)
###*Note: Work in Progress###
####Install####
$ npm install node-socrata
###Examples###
####'GET' Requests####
Request All Data: default limit: 1000 records
Using a default 'GET' request with no query parameter returns all records and fields in the destination data resource table.
var Socrata = require('node-socrata');
var config = {
// find a hostDomain from the listSource method
hostDomain: 'https://controllerdata.lacity.org',
// An accessible API table from the host domain
resource: 'revenue',
// Create account and register app https://opendata.socrata.com
XAppToken: process.env.SOCRATA_APP_TOKEN || 'registered-app-token'
};
var soda = new Socrata(config);
soda.get(function(err, response, data) {
// response = json object returning headers, status, path, method
// data = json object of table records
});
__Query Data with Socrata's 'SoQL' __
Use a query parameter object to filter/query the destination resource table.
Parameters | Description | Default
--- | --- | ---
$select
|The set of columns to be returned|All columns
$where
|Filters the rows to be returned|No filter
$order
|Specifies the order of results| Unorder
$group
|Column to group results on, similar to SQL Grouping|No grouping
$limit
|Maximum number of results to return|1000 (and a maximum of 1000)
$offset
|Offset count into the results to start at, used for paging|Starts at 0
$q
|Performs a full text search for a value|No search
// Create query parameter object:
// Return ten records & only fund_name and fiscal_year
/** Query Parameters initial "$" is optional **/
var params = {
$select: ['fund_name', 'fiscal_year'],
$limit: 10
}
soda.get(params, function(err, response, data) {
// data... use it.
});
####'POST' Requests####
To post data to your authorized Socrata tables use the .post
method which
takes two arguments: data (json) and a callback function which returns the
response.
To use the post method, you will have to setup your Socrata username and password in the initial config to execute a successful post.
// Setup and configure the Socrata table to execute a 'POST' request
var Socrata = require('node-socrata');
var config = {
hostDomain: 'https://opendata.socrata.com', // The host domain for the table.
resource: 'my-table', // The table where data will be posted.
username: process.env.SOCRATA_USERNAME || 'username',
password: process.env.SOCRATA_PASSWORD || 'password',
XAppToken: process.env.SOCRATA_APP_TOKEN || 'registered-app-token'
};
// **Note: Make sure to follow the table's existing schema;
var data = {
foo: 'bar'
};
var soda = new Socrata(config);
// Post that data
soda.post(data, function(err, response, record) {
// handle error, response, and record
});
With a successful post, the callback's record argument will return the number of records created, deleted, and updated. With the post method, records will only be created.
Output generated from the record
{ 'By RowIdentifier': 0,
'Rows Updated': 0,
'Rows Deleted': 0,
'Rows Created': 1,
Errors: 0,
'By SID': 0
}
####TODO####
- Add 'DELETE' method
- Add 'PUT' method
- Add supported data types
####About#### by Andrew Burnes - [email protected]