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.js
module.exports={
packs:[
// ... other trailpacks
require('trailpack-footprints')
]
}
// config/footprints.js
module.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)