Ninja Pumpkin Mutants

    api-formatter
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.2 • Public • Published

    Api Middleware

    CircleCI

    A utility to send formatted json responses as an express response

    Usage

    const express = require('express')
    const Api = require('api-formatter').Api
     
    let app = express()
     
    // Register the middleware
    app.use(Api.middleware({ name: 'My Fancy Api' }))
     
    // Sending formatted data
    app.get('/', (req, res) => {
      res.api.sendData({ something: 'cool!' })
    })
     
    // Sending a formatted failure
    app.get('/wip', (req, res) => {
      res.api.sendFail('Not implemented yet', 418)
    })
     
    // Automatically catching errors
    app.get('/bad', (req, res) => {
      req.api.catch(api => {
        throw new Error('Something went wrong :S')
      })
    })

    Success Response, HTTP 200

    {
      "meta": {
        "success": true,
        "messages": [],
        "name": "My Fancy Api",
        "version": "0.1.2"
      },
      "data": {
        "something": "cool!"
      }
    }

    Failure Response, HTTP 400

    {
      "meta": {
        "success": false,
        "messages": ["Something went wrong :S"],
        "name": "My Fancy Api",
        "version": "0.1.2"
      },
      "data": null
    }

    Middleware options

    Name Use
    name The name of your api, defaults to your package.json name
    version The version of your api, defaults to your package.json version
    httpError Whether a failed response should return a HTTP/400, defaults to true

    A Full example

    import express from 'express'
    import { Api } from 'api-formatter'
     
    let app = express()
     
    app.use(Api.middleware({ name: 'dogs-api', version: 'v1' }))
     
    app.get('/', (req, res) => {
      res.api.sendData({ msg: 'Hey!' })
    })
     
    app.get('/error', (req, res) => {
      res.api.sendFail(['Oops, something went wrong :S'])
    })
     
    app.listen(3000, () => console.log('Listening on :3000'))

    The success response will be:

    GET http://localhost:3000 → http/200

    {
      "meta": {
        "success": true,
        "messages": [],
        "status": 200,
        "name": "dogs-api",
        "version": "v1"
      },
      "data": { "msg": "Hey!" }
    }

    And the fail response will be:

    GET http://localhost:3000/error → http/400

    {
      "meta": {
        "success": false,
        "messages": ["Oops, something went wrong :S"],
        "status": 400,
        "name": "dogs-api",
        "version": "v1"
      },
      "data": null
    }

    Install

    npm i api-formatter

    DownloadsWeekly Downloads

    2

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    29 kB

    Total Files

    15

    Last publish

    Collaborators

    • robb_j