Skip to content

juliopardog/aws-task-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

AWS Task API

A simple serverless backend API built using AWS Lambda, API Gateway, and DynamoDB.

This project demonstrates how to design and deploy a scalable cloud-native application without managing servers.


Features

  • Create tasks
  • Retrieve tasks by userId
  • Serverless architecture (no servers to manage)
  • Scalable and cost-efficient design

Project Highlights

  • Built with a fully serverless architecture using managed AWS services
  • Separates API routing, business logic, and data storage into distinct components
  • Designed to be lightweight, scalable, and cost-efficient
  • Demonstrates practical use of Lambda, API Gateway, and DynamoDB in a real deployment

Live API

GET: https://0azoel99xd.execute-api.us-east-1.amazonaws.com/tasks?userId=test-user

POST: https://0azoel99xd.execute-api.us-east-1.amazonaws.com/tasks


Architecture

flowchart TD
    subgraph AWS Cloud
        B[API Gateway]
        C[AWS Lambda Functions]
        D[DynamoDB]
    end

    A[Client] -->|HTTP Request| B
    B -->|Invoke Function| C
    C -->|PutItem and Query| D
Loading
  • AWS Lambda -> Handles business logic for creating and retrieving tasks
  • API Gateway -> Exposes HTTP endpoints
  • DynamoDB -> Stores task data

API Endpoints

GET /tasks?userId=test-user

Retrieve all tasks for a specific user.

Example request:
GET /tasks?userId=test-user

Example response:

{
  "tasks": [
    {
      "taskId": "123",
      "title": "My first task",
      "completed": false,
      "createdAt": "2026-03-18T01:16:24.724434",
      "userId": "test-user"
    }
  ]
}

POST /tasks

Create a new task.

Example request body:

{
  "userId": "test-user",
  "title": "New Task"
}

Example response:

{
  "message": "Task created successfully"
}

Testing

You can test the API using:

  • Browser (for GET requests)
  • Postman (recommended for POST requests)
  • Curl (via terminal)

Example:

curl "https://0azoel99xd.execute-api.us-east-1.amazonaws.com/tasks?userId=test-user"

curl -X POST "https://0azoel99xd.execute-api.us-east-1.amazonaws.com/tasks" \
  -H "Content-Type: application/json" \
  -d '{"userId":"test-user","title":"New Task"}'

Tech Stack

  • Node.js (AWS Lambda runtime)
  • AWS Lambda
  • Amazon API Gateway
  • Amazon DynamoDB

Project Structure

aws-task-api/
├── createTask/
│   └── index.js
├── getTasks/
│   └── index.js
├── README.md

Future Improvements

  • Add authentication (JWT / Cognito)
  • Input validation
  • Error handling improvements
  • Frontend integration (React or simple UI)
  • Infrastructure as Code (Terraform or CloudFormation)

Author

Julio Pardo
Cloud Computing Student | AWS Certified

About

Serverless REST API built with AWS Lambda, API Gateway, and DynamoDB — live and deployed

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors