Skip to content

serverless/event-gateway-getting-started

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Event Gateway REST API

This example shows a simple way to deploy a REST API via the Event Gateway and AWS Lambda. It uses the hosted version provided by Serverless, Inc. -- Sign up here!

This service will deploy three functions:

  • createUser: an HTTP endpoint for creating and storing a User in a DynamoDB table;
  • getUser: an HTTP endpoint for retrieving a User from DynamoDB; and
  • emailUser: a function that is triggered by a user.created event and pretends to email the user with a welcome message.

The createUser function allows you to create a new User by sending a JSON payload to /users, and the getUser function lets you retrieve that User by making a GET request to /users/{id}.

In the createUser function, we're using the Event Gateway SDK to emit a custom event of user.created into the Event Gateway. You can then subscribe functions to react to this custom event. The emailUser function is subscribed to this event as an example -- imagine a Marketing department that wants to handle emails.

Let's get started!

Quick-Start

Follow this guide to get the Serverless Framework & Event Gateway set up.

Clone this repository, cd into it and run npm i

Make sure you have created an Application in the Serverless Dashboard and filled in your tenant and app in your serverless.yml file.

# serverless.yml

tenant: mytenant # Insert your tenant
app: demos # Insert your app
service: v1-eg-rest-api # Come up with a service name

Deploy your service

$ serverless deploy

Create a new user by hitting the createUser endpoint:

$ APP="<appURL>"
$ curl -X POST -H "Content-Type: application/json" https://${APP}/users \
    --data '{
    	"id": "10",
    	"firstName": "Donald",
    	"lastName": "Duck",
    	"email": "[email protected]"
    }'

# {"id":10,"firstName":"Donald","lastName":"Duck","email":"[email protected]"}

You can now retrieve your user by using the getUser endpoint:

$ APP="<appURL>"
$ curl -X GET https://${APP}/users/10

# {"id":"10","email":"[email protected]","firstName":"Donald","lastName":"Duck"}

In your createUser code, it emits a user.created event to the Event Gateway, which triggers the emailUser function, which then emits a email.sent event. You can check the logs for the Event Gateway in the Dashboard, just navigate to your Service and click the "logs" tab.

Additional Resources:

About

Walkthrough application for using the Event Gateway. -- https://www.serverless.com

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •