@heisterkamp/requestbuilder
v1.0.8
Published
Constructs a Json:api compliant url.
Downloads
47
Readme
requestbuilder
Constructs a Json:api compliant url.
The module is available as a public package on npmjs.com. It will either be marked as a private package or moved to an npm library on GitLab.
Installation
npm install --save @heisterkamp/requestbuilder
Usage
- import the RequestBuilder class
- create a builder
- compile with Webpack
>= v1.0.6
Features
Type|Example
:---|:---
Equal to|.where('location', 'Zwolle')
Not equal to|.whereNot('location', 'Zwolle')
Less than|.lessThan('mileage', 10000)
Less than or equal to|.lessThanOrEqualTo('mileage', 10000)
Greater than|.greaterThan('mileage', 10000)
Greater than or equal to|.greaterThanOrEqualTo('mileage', 10000)
Is null|.whereNull('location')
Is not null|.whereNotNull('direction')
In|.whereIn('location', 'Utrecht,Enschede,Rotterdam')
Not in|.whereNotIn('location', 'Utrecht,Enschede,Rotterdam')
Sorting|.sort('-mileage')
Projection|.fields('id,trailer_number,')
Include subresource|.include('sensors')
Example
import RequestBuilder from 'node_modules/@heisterkamp/requestbuilder/requestBuilder.module';
const host = '...';
// Get token and then do requests
let rb = new RequestBuilder(host + '/api/app/v1/auth');
rb.setMethod('POST');
rb.setBody({login: '...', password: '...'});
rb.get()
.then(response => {
let rb = new RequestBuilder(host + '/api/app/v1/trailers');
rb.setHeaders({Authorization: 'Bearer ' + response.body.token});
// All trailers
rb
.get()
.then(response => { ... });
// All trailers in Zwolle
rb
.where('location', 'Zwolle')
.get()
.then(response => { ... });
rb.reset();
// All trailer ids, numbers, license plates and mileage,
// in Utrecht, Enschede or Rotterdam,
// having a mileage lower than 10.000,
// including their sensor data,
// ordered on mileage descending.
rb
.fields('id,trailer_number,license_plate,mileage')
.whereIn('location', 'Utrecht,Enschede,Rotterdam')
.lessThan('mileage', 10000)
.include('sensors')
.sort('-mileage')
.get()
.then(response => { ... });
});
< v1.0.6
Features
method|function :---|:--- where|Add a where clause whereNotNull|Add a whereNotNull clause greaterThanDateTime|Filter on date lessThanDateTime|Filter on date reset|Reset the builder get|Get the data and process it with a callback
Example
import RequestBuilder from 'node_modules/@heisterkamp/requestbuilder/requestBuilder.module';
carService = 'http://***/api/v1/cars';
let requestBuilder = new RequestBuilder(`${carService}/123`)
.with('positions')
.where('location', 'Amsterdam')
.whereNotNull('driverId')
.greaterThanDateTime('positionTime', '2019-07-26T16:00:00+01:00')
.get(this.processData.bind(this))
;
processData(data)
{
console.log(JSON.parse(data));
}