mhio / node-koa-api-handle

Koa API Handler

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

@mhio/koa-api-handle

A Koa API Handler to do all the request heavy lifting, so you just write logic

Higher level use from: https://github.com/mhio/node-koa-api

Install

yarn add @mhio/koa-api-handle
npm install @mhio/koa-api-handle

Usage

API docs

const Koa = require('koa')
const Router = require('koa-router')
const {KoaApiHandle} = require('@mhio/koa-api-handle')

class MyHandler {
  
  static get error_message(){
    return 'Failure'
  }

  static async ok(ctx){
    return {
      ok: true,
      request_id, ctx.state.request_id,
    }
  }

  static async other(){
    return 'other'
  }

  static async error(){
    throw new Error(this.error_message)
  }

}

const app = new Koa()
const router = new Router()

app.use(KoaApiHandle.error())
app.use(KoaApiHandle.tracking())

router.get('/ok', KoaApiHandle.response(MyHandler, 'ok'))
router.post('/other', KoaApiHandle.response(MyHandler, 'other'))
router.get('/error', KoaApiHandle.response(MyHandler.error.bind(MyError)))

app.use(router.routes())
   .use(router.allowedMethods())

app.use(KoaApiHandle.notFound())

app.listen()

Changes

v0.12.x -- Node 20+, pino for logger

https://github.com/mhio/node-koa-api-handle

About

Koa API Handler

License:MIT License


Languages

Language:JavaScript 100.0%