Constructor.io Node Client

npm MIT licensed Minzipped Size

A Node.js client for Constructor.io. Constructor.io provides search as a service that optimizes results using artificial intelligence (including natural language processing, re-ranking to optimize for conversions, and user personalization).

This client is intended for use in server side integrations. If you want a JavaScript client for client side (i.e. front end) integrations please use @constructor-io/constructorio-client-javascript

Documentation

Full API documentation is available on Github Pages

1. Review the Requirements

Requesting results from your Node.js back-end can be useful in order to control result rendering logic on your server, or augment/hydrate results with data from another system. However, a back-end integration has additional requirements compared to a front-end integration. Please review Back End API Integration for more detail.

2. Install

This package can be installed via npm: npm i @constructor-io/constructorio-node. Once installed, simply import or require the package into your repository.

Important: this library should only be used in a server-side context.

3. Retrieve an API key and token

You can find this in your Constructor.io dashboard. Contact sales if you'd like to sign up, or support if you believe your company already has an account.

4. Implement the Client

Once imported, an instance of the client can be created as follows:

const ConstructorIOClient = require('@constructor-io/constructorio-node');

var constructorio = new ConstructorIOClient({
    apiKey: 'YOUR API KEY',
});

5. Retrieve Results

After instantiating an instance of the client, four modules will be exposed as properties to help retrieve data from Constructor.io: search, browse, autocomplete, recommendations, catalog and tracker.

Development / npm commands

npm run lint          # run lint on source code and tests
npm run test          # run tests
npm run coverage      # run tests and serves coverage reports from localhost:8081
npm run docs          # output documentation to `./docs` directory