@dadi/api-wrapper-core
v4.2.2
Published
Core high-level methods for interacting with DADI API
Downloads
63
Keywords
Readme
DADI API wrapper (core)
Core high-level methods for interacting with DADI API
Overview
DADI API is a high performance RESTful API layer designed in support of API-first development and the principle of COPE.
This package exposes a set of chainable methods that allow developers to compose complex read and write operations using a simplistic and natural syntax, providing a high-level abstraction of the REST architectural style.
It can be used as a standalone module to generate request objects containing information about the HTTP verb, URL and payload, or used in conjunction with DADI API Wrapper to provide a full-featured API consumer, capable of handling authentication and the HTTP communication.
Getting started
Install the
@dadi/api-wrapper-core
module:npm install @dadi/api-wrapper-core --save
Add the library and configure the API settings:
const APIWrapper = require('@dadi/api-wrapper-core') const api = new APIWrapper({ uri: 'http://api.example.com', port: 80, property: 'test' })
Make a query:
// Example: getting all documents where `name` contains "john" and age is greater than 18 const requestObject = api .in('users') .whereFieldContains('name', 'john') .whereFieldIsGreaterThan('age', 18) .find()
Methods
See the documentation on the main package.
Defining a callback
By default, calling a terminator will return a request object, which is a plain JavaScript object formed of method
, uri
and, optionally, body
. Alternatively, you can choose to specify what exactly terminators will return, by defining a callback that will be executed before they return. This callback will receive the request object as an argument, giving you the option to modify it or wrap it with something else.
A callback is defined by setting a callback
property on the options object used to initialise API wrapper.
const APIWrapper = require('@dadi/api-wrapper-core')
const api = new APIWrapper({
uri: 'http://api.example.com',
port: 80,
property: 'test',
callback: function(requestObject) {
// This callback will return a JSON-stringified version
// of the request object.
return JSON.stringify(requestObject)
}
})