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

@serverless/aws-api-gateway

Package Overview
Dependencies
Maintainers
4
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@serverless/aws-api-gateway

The complete AWS API Gateway Framework, powered by [Serverless Components](https://github.com/serverless/components).

  • 4.1.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
3
increased by200%
Maintainers
4
Weekly downloads
 
Created
Source

aws-api-gateway

The complete AWS API Gateway Framework, powered by Serverless Components.

Features

  • Create & manage new API Gateway REST APIs with very simple configuration.
  • Extend Existing API Gateway REST APIs without disrupting other services.
  • Integrate with AWS Lambda via the aws-lambda component
  • Authorize requests with AWS Lambda authorizers
  • Create proxy endpoints for any URL with 3 lines of code (coming soon)
  • Create mock endpoints by specifying the object you'd like to return (coming soon)
  • Debug API Gateway requests Via CloudWatch Logs (coming soon)
  • Protect your API with API Keys (coming soon)
  • Add usage plans to your APIs (coming soon)
  • Configure throttling & rate limits (coming soon)
  • Trace requests with AWS X-Ray (coming soon)

Table of Contents

  1. Install
  2. Create
  3. Configure
  4. Deploy

1. Install

$ npm install -g serverless

2. Create

Just create the following simple boilerplate:

$ touch serverless.yml # more info in the "Configure" section below
$ touch index.js       # your lambda code
$ touch .env           # your AWS api keys
# .env
AWS_ACCESS_KEY_ID=XXX
AWS_SECRET_ACCESS_KEY=XXX

the index.js file should look something like this:


module.exports.createUser = async (e) => {
  return {
    statusCode: 200,
    body: 'Created User'
  }
}

module.exports.getUsers = async (e) => {
  return {
    statusCode: 200,
    body: 'Got Users'
  }
}

module.exports.auth = async (event, context) => {
  return {
    principalId: 'user',
    policyDocument: {
      Version: '2012-10-17',
      Statement: [
        {
          Action: 'execute-api:Invoke',
          Effect: 'Allow',
          Resource: event.methodArn
        }
      ]
    }
  }
}

Keep reading for info on how to set up the serverless.yml file.

3. Configure

You can configure the component to either create a new REST API from scratch, or extend an existing one.

Creating REST APIs

You can create new REST APIs by specifying the endpoints you'd like to create, and optionally passing a name and description for your new REST API. You may also choose between a lambda proxy or http proxy integration by using the function or proxyURI field respectively. The function field will override the proxyURI field.

# serverless.yml

createUser:
  component: "@serverless/aws-lambda"
  inputs:
    code: ./code
    handler: index.createUser
getUsers:
  component: "@serverless/aws-lambda"
  inputs:
    code: ./code
    handler: index.getUsers
auth:
  component: "@serverless/aws-lambda"
  inputs:
    code: ./code
    handler: index.auth

restApi:
  component: "@serverless/aws-api-gateway"
  inputs:
    description: Serverless REST API
    endpoints:
      - path: /users
        method: POST
        function: ${createUser.arn}
        authorizer: ${auth.arn}
      - path: /users
        method: GET
        function: ${getUsers.arn}
        authorizer: ${auth.arn}
      - path: /users
        method: PUT
        proxyURI: https://example.com/users
        authorizer: ${auth.arn}
        apiKeyRequired: false
Extending REST APIs

You can extend existing REST APIs by specifying the REST API ID. This will only create, remove & manage the specified endpoints without removing or disrupting other endpoints.

# serverless.yml

createUser:
  component: "@serverless/aws-lambda"
  inputs:
    code: ./code
    handler: index.createUser
getUsers:
  component: "@serverless/aws-lambda"
  inputs:
    code: ./code
    handler: index.getUsers

restApi:
  component: "@serverless/aws-api-gateway"
  inputs:
    id: qwertyuiop # specify the REST API ID you'd like to extend
    endpoints:
      - path: /users
        method: POST
        function: ${createUser.arn}
      - path: /users
        method: GET
        function: ${getUsers.arn}

4. Deploy

$ serverless

 

New to Components?

Checkout the Serverless Components repo for more information.

FAQs

Package last updated on 29 Oct 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