koa-oai-router-cache

1.3.0 • Public • Published

Koa-OAI-Router-Cache

License Node Version NPM Version Build Status Test Coverage Downloads Dependency Status

Request form cache plugin for koa-oai-router.

Installation

Multi-strategy object caching service depends on catbox.

npm i koa-oai-router-cache catbox-redis --save

Info

field type info
name string cache
evoked fields string x-oai-cache
evoked value object enable, expire
options object hit, key, value
  • evoked value object

    • enable boolean enable cache, default true
    • expire string|number ttl
      1. ms, milli, millisecond, milliseconds - will parse to milliseconds
      2. s, sec, secs, second, seconds - will parse to seconds
      3. m, min, mins, minute, minutes - will parse to minutes
      4. h, hr, hrs, hour, hours - will parse to hours
      5. d, day, days - will parse to days
      6. w, week, weeks - will parse to weeks
      7. mon, mth, mths, month, months - will parse to months
      8. y, yr, yrs, year, years - will parse to years
      
    • uid boolean get uid as cache key, default false.
    • memory boolean use memory cache, 100MB max.
  • options object

    • hit object | boolean false not response header. true responses header x-oai-hit: true. string response header with custom key.
    • uid function uid key builder. having args (ctx) and must return string
    • key function cache key builder. having args (ctx) and must return {id, segment}
    • keyInParameters boolean only build cache key in parameters, default true
    • value function cache value builder. having args (ctx) and must return {type, value}

Usage

Simple code:

const Koa = require('koa');
const Router = require('koa-oai-router');
const middlewareLoader = require('koa-oai-router-middleware');
const cacheHandler = require('koa-oai-router-cache');
const catboxRedis = require('catbox-redis');
 
const app = new Koa();
const router = new Router({
  apiDoc: './api',
});
 
router.moount();
 
router.mount(middlewareLoader('./controllers'));
router.mount(cacheHandler({engine: catboxRedis, options: {url: 'redis://127.0.0.1:6379'}}));
 
app.use(bodyParser());
app.use(router.routes());
/pets-string:
  get:
    description: "Returns all pets from the system that the user has access to"
    operationId: "findPets"
    produces:
      - "application/json"
    tags:
      - pets
    parameters:
      name: "name"
        in: "query"
        required: true
        type: "string"
    # configure api cache here 
    x-oai-cache:
      expire: 10s
    x-oai-middleware:
      file: pets
        handler: replyString
    responses:
      "200":
        description: "pet response"
        schema:
          type: "array"
          items:
            $ref: "#/definitions/Pet"
      default:
        description: "unexpected error"

Package Sidebar

Install

npm i koa-oai-router-cache

Weekly Downloads

2

Version

1.3.0

License

MIT

Unpacked Size

15.8 kB

Total Files

12

Last publish

Collaborators

  • bitebit