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 = ; 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: processenvSOCRATA_APP_TOKEN || 'registered-app-token'; var soda = config; soda;
__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;
'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' requestvar 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: processenvSOCRATA_USERNAME || 'username' password: processenvSOCRATA_PASSWORD || 'password' XAppToken: processenvSOCRATA_APP_TOKEN || 'registered-app-token'; // **Note: Make sure to follow the table's existing schema;var data = foo: 'bar'; var soda = config; // Post that datasoda;
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 - apburnes@gmail.com