Footprints Trailpack. This trailpack provides the footprint interface, which
other trailpacks such as trailpack-waterline
and trailpack-knex implement,
as well as a suite of tests that Footprint implementations should pass.
What are Footprints?
Footprints automatically generate easy-to-use RESTful endpoints for your models.
Install
$ npm install --save trailpack-footprints
Configure
// config/main.jsmodule.exports={packs: [// ... other trailpacksrequire('trailpack-footprints')]}
// config/footprints.jsmodule.exports={/** * Generate routes for controller handlers. * You can set controllers to true/false to enable/disable * automatic footprints routes globaly */controllers: {/** * Default methods to accept for routes generated from controller handlers. */method: '*',/** * List of controllers to ignore; that is, do not generate footprint routes * for them. */ignore: []},/** * Generate conventional Create, Read, Update, and Delete (CRUD) routes for * each Model. */models: {options: {/** * The max number of objects to return by default. Can be overridden in * the request using the ?limit argument. */defaultLimit: 100,/** * Subscribe to changes on requested models via WebSocket * (support provided by trailpack-websocket) */watch: false,/** * Whether to populate all model associations by default (for "find") */populate: true},actions: {create: true,find: true,update: true,destroy: true,/** * Specify which "association" endpoints to activate. */createAssociation: true,findAssociation: true,updateAssociation: true,destroyAssociation: true}},/** * Prefix your footprint route paths */prefix: '/api/v1'}
API
api.services.FootprintService
The purpose of FootprintService is to transform and forward queries to the datastore.
create (modelName, values, [options])
param
required?
description
example
modelName
Yes
The name of the model to create (in api.models)
User
values
Yes
An object containing the values of the record to create
{ username: 'admin' }
options
No
Datastore-specific options
find (modelName, criteria, [options])
param
required?
description
example
modelName
Yes
The name of the model to search for (in api.models)