Source code for Tutorial on building a Swift REST API to perform CRUD operations for Todo Items, learn how to persist data to AWS DynamoDB using AWS Swift SDK, handle events using Swift AWS Lambda Runtime library, and deploy to AWS Lambda using Serverless framework.
Youtube link at https://youtu.be/HHg3fVfpj6M
- Xcode 11.5
- AWS Credentials to provision resources
- Serverless Framework for deployment. https://www.serverless.com
- Docker for build and packaging. https://www.docker.com/products/docker-desktop
- Copy and Clone the project
- Create the container using Dockerfile
- Build the project in release mode using the docker container
- Run the script inside scripts/package.sh to package the app into Lambda.zip inside the build folder
- Update the serverless by providing your own unique service, dynamo db table
- Deploy using sls -v deploy
- List Todos: /todos (GET)
- Read Todo: /todos/{id} (GET)
// Response JSON Body
{
"id": "String",
"name": "String",
"isCompleted": "Boolean",
"dueDate": "ISO8601 formatted String",
"createdAt": "ISO8601 formatted String",
"updatedAt": "ISO8601 formatted String"
}
- Create Todo: /todos (POST)
// Request JSON Body
{
"id": "String",
"name": "String",
"isCompleted": "Boolean",
"dueDate": "ISO8601 formatted String"
}
- Update Todo: /todos/{id} (PUT)
// Request JSON Body
{
"name": "String",
"isCompleted": "Boolean",
"dueDate": "ISO8601 formatted String"
}
- Delete Todo: /todos/{id} (DELETE)
- Xcode 12
- Paste the endpoint url from backend deployment into TodoProvider.swift