microservice wrapper for memcached
npm i
Input headers:
X-MC-Key
should be set to the Base64-encoded key.
Output payload: application/octet-stream containing cache entry.
HTTP status codes:
- 200, upon success
- 404, if not present or expired
- 5xx, upon server error
Input payload: application/json array of keys that need to be fetched
Output payload:
application/json object containing all the key values found with format { "key1": "value1", "key2": "value2" ...}
HTTP status codes:
- 200, upon success
- 5xx, upon server error
Input headers:
X-MC-Key
should be set to the Base64-encoded key.
X-MC-Exp
specifies the lifetime of the cache entry, in seconds, after which 404-Not-Found will be returned.
Input payload: application/octet-stream payload to be stored as the cached value.
Output:
application/json payload { "result": true }
indicating success.
HTTP status codes:
- 200, upon success
- 5xx, upon server error
Input payload:
application/json array of objects with format { "key": string, "value": string, "exp": number}
, each of them representing a value value
that will be set with key key
and expiration lifetime in seconds of exp
.
Output:
application/json payload { "result": true }
indicating success.
HTTP status codes:
- 200, upon success
- 5xx, upon server error
- Identity: GET /
- Cache stats and health check: GET /stats
The routes at /cache
can be set to require basic authentication.
See Configuration below.
Examines PORT
environment variable for microservice listen port,
or uses the express app default: 3000.
Examines UPSTREAM
environment variable for upstream memcached
server location. Multiple upstream servers are not supported.
Default, if not supplied: 127.0.0.1:11211
Examines AUTH_USER
and AUTH_PASSWORD
environment variables for enabling authentication on the cache routes when both are set.
npm start
which runs bin/www
Before running end-to-end tests, start an instance of memcached
:
npm run start:memcached
Then run the end-to-end test suite:
npm run test:e2e
Alternatively, run end-to-end coverage tests:
npm run coverage:e2e
Finally, shut down memcached
:
docker-compose down
For deploying a new version:
- use npm version to update the version in a new branch. For example:
git checkout -b 0.3.0
npm version minor
-
push the changes and create a PR.
-
Once the PR is merged, apply a tag to the repository corresponding to the new version.
After this, a new docker image will be built and pushed to dockerhub.