Minimal routing layer for building JSON APIs with Zeit's Micro
npm install micro micro-api
Declare your API's routes
// index.js
const microApi = require('./index')
const handlers = require('./handlers')
const api = microApi([
{
method: 'post',
path: '/foos',
handler: handlers.createFoo,
},
{
method: 'get',
path: '/foos/:fooId',
handler: handlers.showFoo,
},
])
module.exports = api
Define some micro-compatible handlers
// handlers.js
const uuid = require('uuid')
// In memory database
const foos = []
const createFoo = ({ body }) => {
// Build up the new item
const newFoo = Object.assign({}, body, { id: uuid() })
// Add it to the database
foos.push(newFoo)
return newFoo
}
// Find and return by id
const showFoo = ({ params: { fooId } }) => foos.find(f => f.id === fooId)
module.exports = { createFoo, showFoo }
micro -p 3000 ./index.js
See Micro documentation for complete usage.