diff --git a/package.json b/package.json index b31d70d6a5587a15dd1d9debd527dac37e7a6fb7..5859ea21dbe082ff45e4fa0cd30f33278c476317 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,8 @@ "express": "^4.13.3", "morgan": "^1.6.1", "noble": "^1.1.0", - "asyncawait": "^0.7.4" + "asyncawait": "^0.7.4", + "apicache": "*" }, "repository": { "type": "git", diff --git a/server.js b/server.js index bd03e6baf3fd86722ed4682ca41e2639c0070122..69866660feac4c78c9ff2fb62ce2072d208e8c6b 100755 --- a/server.js +++ b/server.js @@ -5,6 +5,8 @@ var express = require( 'express' ); var morgan = require( 'morgan' ); var await = require( 'asyncawait/await' ); var async = require( 'asyncawait/async' ); +var apicache = require( 'apicache' ).options( { defaultDuration: 30000 } ); +var cache = apicache.middleware; var config = require( process.env.AUGUSTCTL_CONFIG || './config.json' ); var serverConfig = require( process.env.AUGUSTCTL_SERVER_CONFIG || './server-config.json' ); @@ -24,7 +26,7 @@ var ret = { }; // Endpoint to perform all lock actions -app.get( '/api/:lock_action/:lock_name', function( req, res ) { +app.get( '/api/:lock_action/:lock_name', cache( '5 seconds' ), function( req, res ) { // Parse allowed request arguments var action = req.params.lock_action, allowedActions = [ 'unlock', 'lock', 'status' ];