koa-oai-router-cache
cache plugin for koa-oai-router
Last updated 2 years ago by bitebit .
MIT · Original npm · Tarball · package.json
$ cnpm install koa-oai-router-cache 
SYNC missed versions from official npm registry.

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"

Current Tags

  • 1.3.0                                ...           latest (2 years ago)

5 Versions

  • 1.3.0                                ...           2 years ago
  • 1.2.0                                ...           2 years ago
  • 1.1.1                                ...           3 years ago
  • 1.1.0                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (9)
Dev Dependencies (16)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |