API Server Implementation using AWS Serverless - Beginning

API Server Implementation using AWS Serverless - Beginning

Hello, This time, I would like to introduce the ongoing development of an API Server based on AWS Serverless technology. It is not yet complete and is still in progress. Initially, I planned to share the project only after all the basic functionalities were implemented. However, I decided that it would be more beneficial to introduce the project step by step, sharing feedback and making improvements as I go. Therefore, I’m presenting this project even though it hasn’t been fully completed yet. Currently, it is registered as an open-source project on GitHub, so feel free to contribute with any improvements or feedback at any time.

The API Server is named Snail API. Why "Snail"? It's simple. I’m currently raising snails at home, so I thought it would be an appropriate theme for the API Server. I also took inspiration from sample API Servers like Dog API, which often appear in tools like Redoc or Swagger. The main goal of this project is to build and operate an API Server using AWS Serverless technology. Most of the projects I’ve worked on in the past were traditional on-premises server-based development projects. However, to leverage AWS technology for future projects, it’s essential to become proficient in Serverless technology. This project aims to minimize developers' involvement in infrastructure management while building services using AWS technology. The repositories related to the API Server are as follows, you can check the details by following the links to each repository.


The progress made so far includes the following:

Implementation of the API Static Front-end Page

  • Created a web page using ReDoc
  • Implemented API Gateway and a Static Front-end S3 Bucket
  • Deployed the static web page using AWS CodeBuild and AWS CodePipeline triggered by a push event to the API Front-end repository

Implementation of the API Image Repository

  • Developed APIs for storing and deleting images, including handling requests via API Gateway, configuring Lambda functions to process these requests, using a hashing algorithm to transform file names, generating images for different resolutions, storing and deleting them in S3 Buckets, and saving metadata to DynamoDB.
  • Managed storage and deletion API requests using GitHub Actions triggered by push events to the Image Repository, including authentication management with OIDC Federation and identifying file types (registration, deletion, renaming, content modification) to determine the appropriate API requests.


The next steps will include:

  • Implementation of image request handling based on API requestsReturn image URLs based on different resolutions according to the client’s header information for a specific image requestReturn a list of images based on search conditionsReturn a list of random images
  • Implementation of SQS for handling image change requests
  • Domain access using CloudFront and Route 53
  • Development of APIs not only for image handling but also for managing snail-related information

Of course, these are not all the features that will be implemented. There could be additional functionalities added based on new ideas, or the project could be improved through your contributions. Even though the service is not yet fully implemented, I realized that even for a relatively simple service like this, many AWS services are required. I also learned a lot about how to utilize Serverless technology by integrating these various functionalities.


Article content
Article content


Article content



Article content


Article content


Article content


To view or add a comment, sign in

More articles by Sungjin Shin

Explore content categories