1.3.0 • Published 7 years ago
koa-oai-router-cache v1.3.0
Koa-OAI-Router-Cache
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 --saveInfo
| field | type | info |
|---|---|---|
| name | string | cache |
| evoked fields | string | x-oai-cache |
| evoked value | object | enable, expire |
| options | object | hit, key, value |
evoked valueobjectenablebooleanenable cache, defaulttrueexpirestring|numberttl1. 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 yearsuidbooleanget uid as cache key, defaultfalse.memorybooleanuse memory cache,100MBmax.
optionsobjecthitobject | booleanfalsenot response header.trueresponses headerx-oai-hit: true.stringresponse header with custom key.uidfunctionuid key builder. having args (ctx) and must returnstringkeyfunctioncache key builder. having args (ctx) and must return{id, segment}keyInParametersbooleanonly build cache key in parameters, defaulttruevaluefunctioncache 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"