Package Exports
- awslambdaproxyresponse
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (awslambdaproxyresponse) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
AWS Lambda proxy response
A Node.js module which generates response payloads for API Gateway fronted Lambda functions integrated via the Lambda proxy method.
The response structure takes the following form:
{
statusCode: httpStatusCode,
headers: { headerName: 'headerValue' },
body: '...'
}Methods
AWSLambdaProxyResponse([statusCode])
- Creates new
AWSLambdaProxyResponseinstance. - Optional
statusCodesets the HTTP status code for the response, otherwise defaults to200 / OK. - Collection of valid HTTP codes defined at
AWSLambdaProxyResponse.HTTP_STATUS. - Constructor will throw an exception if given
statusCodeis not within this collection.
Example:
let AWSLambdaProxyResponse = require('awslambdaproxyresponse');
let myResponse = new AWSLambdaProxyResponse(
AWSLambdaProxyResponse.HTTP_STATUS.FOUND
);AWSLambdaProxyResponse.setStatusCode(statusCode)
- Sets the HTTP
statusCodefor a response. - Throws an exception if given
statusCodeis not within theAWSLambdaProxyResponse.HTTP_STATUScollection. - Returns
AWSLambdaProxyResponseinstance.
AWSLambdaProxyResponse.addHeader(name[,value])
- Adds HTTP headers to the Lambda proxy response.
- Single HTTP header can be added by providing a
name/valuepair. - Multiple headers can be added by providing an object collection as
nameonly. - Throws an exception if header names don't match the regular expression pattern
/^[A-Za-z-]+$/. - Returns
AWSLambdaProxyResponseinstance.
Example:
let AWSLambdaProxyResponse = require('awslambdaproxyresponse');
let myResponse = new AWSLambdaProxyResponse();
// lets add a single header
myResponse.addHeader('Content-Type','text/html');
// add several others
myResponse.addHeader({
'x-custom-header': 'value',
'x-user-auth': 'Donald Duck'
});AWSLambdaProxyResponse.setBody(body)
- Sets the response body payload.
- If
bodyis not of typestring, will be automatically serialized viaJSON.stringify(). - Returns
AWSLambdaProxyResponseinstance.
AWSLambdaProxyResponse.getPayload()
- Returns a valid Lambda proxy response structure object.
Constants
AWSLambdaProxyResponse.HTTP_STATUS
A collection of valid HTTP status codes for use with the AWSLambdaProxyResponse() constructor or setStatusCode(statusCode) method.
let AWSLambdaProxyResponse = require('awslambdaproxyresponse');
console.dir(AWSLambdaProxyResponse.HTTP_STATUS);
/*
{
OK: 200,
MOVED: 301,
FOUND: 302,
BAD_REQUEST: 400,
UNAUTHORIZED: 401,
FORBIDDEN: 403,
NOT_FOUND: 404,
SERVER_ERROR: 500,
NOT_IMPLEMENTED: 501,
BAD_GATEWAY: 502,
SERVICE_UNAVAILABLE: 503,
GATEWAY_TIMEOUT: 504
}
*/Example usage
Within the context of a Lambda function:
let AWSLambdaProxyResponse = require('awslambdaproxyresponse');
exports.myHandler = function(event,context,callback) {
// create our response
let helloWorld = new AWSLambdaProxyResponse();
helloWorld.setBody('Hello world');
// return from Lambda
callback(null,helloWorld.getPayload());
/*
console.dir(helloWorld.getPayload());
{
statusCode: 200,
headers: {},
body: 'Hello world'
}
*/
};A Lambda response that results in a redirect:
let AWSLambdaProxyResponse = require('awslambdaproxyresponse');
exports.myHandler = function(event,context,callback) {
// create our response
let overHere = new AWSLambdaProxyResponse();
overHere.setStatusCode(AWSLambdaProxyResponse.HTTP_STATUS.MOVED);
overHere.addHeader('Location','https://my.new.domain.com/');
// return from Lambda
callback(null,overHere.getPayload());
/*
console.dir(overHere.getPayload());
{
statusCode: 301,
headers: { Location: 'https://my.new.domain.com/' },
body: ''
}
*/
};