GithubHelp home page GithubHelp logo

revolut-home-task's Introduction

API Gateway HTTP API with Lambda integration

This project contains source code and supporting files for a serverless application running in AWS. It includes the following files and folders.

  • infra - Terraform code for all the resources of the application
  • data_model - DynamoDB Data Model in JSON (for local deployment)
  • tests - Test JSON events for the lambdas

Deployment

alt text

The application uses several AWS resources, including Lambda functions and an API Gateway API. These resources are defined in the infra directory in this project. In order to deploy all these resources, run the following commands:

terraform plan
terraform apply

This will deploy the 22 necessary resources to launch two lambda functions through the same API Gateway. One of the outputs will be base_url, which gives us the URL to the deployed API.

We can use this output variable to use the API directly from our local machine.

Usage

First, run the PUT Requests so there is data in the DynamoDB. There are four different events that you can paste in the testing tab directly in the AWS Lambda Console in tests directory.

PUT request

curl --request PUT \
--header "Content-Type: application/json" \
--data '{"dateOfBirth": "1994-08-30"}' \
"$(terraform output -raw base_url)/hello/Fran"

This type of requests does not return any message, unless there is an error with the date.

GET request

curl "$(terraform output -raw base_url)/hello/<username>"

Response

{ "message": "Hello Fran! Your Birthday is in 69 days!"}

revolut-home-task's People

Contributors

franbecerra avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.