koa-oai-router-cache
v1.3.0
Published
cache plugin for koa-oai-router
Downloads
11
Maintainers
Readme
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 --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, defaulttrue
expire
string|number
ttl1. 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, defaultfalse
.memory
boolean
use memory cache,100MB
max.
options
object
hit
object | boolean
false
not response header.true
responses headerx-oai-hit
: true.string
response header with custom key.uid
function
uid key builder. having args (ctx) and must returnstring
key
function
cache key builder. having args (ctx) and must return{id, segment}
keyInParameters
boolean
only build cache key in parameters, defaulttrue
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"