a simple api boilerplate
This is a basic boilerplate for spinning up a non-hypermedia API with a minimum of abstractions. It relies heavily on pg-promise and uses json schema for input validation (via is-my-json-valid).
Install node 6x+ and postgresql (this should be in vagrant or docker).
- Run
npm install
to install local dependencies. - Create database
createdb api-boilerplate
. - Run
npm run migrate:up
to initialize the database schema. - Run
npm run seed:up
to populate database with seed data. - Run
npm run start-dev
to start the api. - Browse to http://localhost:8080/
- Edit files in
src/api
(the server will automatically restart on changes).
- Run
npm run migrate
to check the status of migrations. - Run
npm run migrate:up
to migrate to the most recent migration. - Run
npm run migrate:down
to roll back one migration. - Run
npm run migrate:create
to create a new migration file.
- Run
npm run seed
to check the status of seeds. - Run
npm run seed:up
to load to the most recent seed. - Run
npm run seed:down
to roll back one seed. - Run
npm run seed:create
to create a new seed file.
// one
POST /v1/state
Content-Type: application/json
{
"data": {
"name": "Minnesota",
"abbr": "MN"
}
}
// many
POST /v1/state
Content-Type: application/json
{
"data": [{
"name": "Minnesota",
"abbr": "MN"
}, {
"name": "Vermont",
"abbr": "VT"
}]
}
// many
GET /v1/state
// one
GET /v1/state/1
PATCH /v1/state/1
Content-Type: application/json
{
"data": {
"name": "Minnesota"
}
}
DELETE /v1/state/1