Neverending Pun Machine

    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"

    Install

    npm i koa-oai-router-cache

    DownloadsWeekly Downloads

    0

    Version

    1.3.0

    License

    MIT

    Unpacked Size

    15.8 kB

    Total Files

    12

    Last publish

    Collaborators

    • bitebit