Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

api-gateway-http-response

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

api-gateway-http-response

A small library that generates API Gateway HTTP responses for Lambda proxy integration (ie. for CloudFormation and AWS SAM)

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

API Gateway HTTP Response for AWS Lambda

A small library that generates API Gateway HTTP responses for Lambda proxy integration. It can be used with AWS CloudFormation and AWS SAM.

Usage

This package exports a function that accepts four params and returns an object.

Function Params

Function accepts following four params:

  • Response body (optional) - A string or an object that should be returned as a HTTP response from the API Gateway. Default value is an empty string.

  • Status code (optional) - A number that represents HTTP status code. Default values are:

    • 204, if response body is an empty string.
    • 200, if response body is a string or an object.
    • 400, if response body is an instance of JavaScript Error.
  • Headers (optional) - An object with headers that will be passed as response headers. Default value is:

    {
        "Access-Control-Allow-Headers": "Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token",
    	"Access-Control-Allow-Methods": "OPTIONS,POST,GET,PUT,DELETE",
    	"Access-Control-Allow-Origin": "*",
    	"Access-Control-Max-Age": "86400"
    }
    
  • isBase64Encoded (optional) - true or false to enable or disable base64 encoding. Default value is false.

Output

The output of this function is an object in a valid Lambda function proxy integration format, described here. For example, a valud output for httpResponse('hello world') would be the following object:

{
    "isBase64Encoded": false,
    "statusCode": 200,
    "body": "hello world",
    "headers": {
   		"Access-Control-Allow-Headers": "Content-Type,Authorization,X-Amz-Date,X-Api-Key,X-Amz-Security-Token",
		"Access-Control-Allow-Methods": "OPTIONS,POST,GET,PUT,DELETE",
		"Access-Control-Allow-Origin": "*",
		"Access-Control-Max-Age": "86400"
	}
}

Example usage

A common usage would be inside an AWS Lambda function, similar to this:

'use strict'

const httpResponse = require('api-gateway-http-response')
const parseApiEvent = require('./parse-event') // A function that parses an event
const businessLogic = require('./business-logic') // A function that handles a logic for your Lambda function

async function lambda(event) {
  const request = parseApiEvent(event)
  try {
    const body = await businessLogic(request)
    return httpResponse(body)
  } catch(err) {
    return httpResponse(err)
  }
}

exports.handler = lambda

CORS support

By default, this function will return headers that supports CORS from any origin. Supported HTTP methods are: OPTIONS, POST, GET, PUT and DELETE.

Motivation

I wrote similar thing many times, packing it into a small independent package is easier that searching through other projects.

License

MIT -- see LICENSE

Keywords

FAQs

Package last updated on 18 Jan 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc