This is for view based requests on the Knack platform. If you need the object based requests, use our other npm package: knack-object-api.
API for Knack for all CRUD operations (GET, POST, PUT, DELETE). This is recursive upon failure and takes function parameters to specify the data you are requesting/changing. This is for both Javascript and TypeScript. To use TypeScript, add /ts when importing/requiring
npm i knack-api --save
Then...
import { knack_api } from 'knack-api';
or
const { knack_api } = require('knack-api');
For TypeScript, use:
import { knack_api } from 'knack-api/ts';
or
const { knack_api } = require('knack-api/ts');
const settings = {
sceneKey: 'scene_xx',
viewKey: 'view_xx',
// optional parameters depending on operation
page: '',
recordId: '',
payload: {
field_xx: '',
},
filters: {
'match': 'and'/'or',
'rules': [
{
'field': 'field_xx',
'operator': '',
'value': ''
}
]
},
// sort can be given as a single object such as the example below, or an array of objects to further sort data
sort: {
field: 'field_xx',
order: 'asc'/'desc'
},
// limit records per page ( anything up to 100 )
rowsPerPage: 50,
// limit how many records are retrieved
recordLimit: 25 ,
// cb is callback - this will be called after every request (ex. if we need 5,000 records, 5 requests are needed and this will be triggered after each one)
// all records will still be stored in memory until all requests are finished - a new version will introduce only using the callbacks so storing records in memory is not needed
cb: function(data) {
console.log('data from every request', data);
}
}
knack_api.get(settings),
knack_api.put(settings),
knack_api.post(settings),
knack_api.deletion(settings)
You can also filter the resulted records by either entering an array of the fields you want in ".include([])" or the fields you want to exclude with ".exclude([])"
example:
const results = await knack_api.get(settings).include(['field_xx', 'field_xx'])
const results = await knack_api.get(settings).exclude(['field_xx'])
ksensetech.com