A sample Java application demonstrating secure API access using AWS Lambda, API Gateway, Cognito, and DynamoDB.
API Gateway Secure Pet Store is a sample Java application that demonstrates how to build a secure, serverless backend API using AWS services. It provides a complete example of integrating Amazon API Gateway, AWS Lambda, Amazon Cognito, and DynamoDB to create a pet store application with user authentication and data persistence. The project solves the problem of understanding how to properly implement authentication and authorization in a serverless architecture on AWS.
AWS developers and architects looking for a practical reference implementation of secure serverless applications using Java. It's particularly useful for those building APIs with Amazon API Gateway and Lambda who need to integrate Cognito for user management.
Developers choose this project because it provides a fully working, well-documented example of AWS serverless security patterns that can be adapted to real-world applications. Unlike generic documentation, it offers concrete code and configuration that demonstrates best practices for authentication, authorization, and API design on AWS.
Amazon API Gateway sample using Amazon Cognito credentials through AWS Lambda
Uses Amazon Cognito and IAM for robust authentication and authorization, demonstrating secure serverless patterns as highlighted in the project philosophy.
Includes a complete iOS application with custom AWSCredentialsProvider, showcasing real client-server interaction and temporary credential issuance.
Leverages managed services like API Gateway and DynamoDB, emphasizing scalability and infrastructure management without server maintenance.
The README provides detailed, step-by-step instructions with screenshots for configuring all AWS resources, from Cognito pools to IAM roles.
Requires extensive manual setup across multiple AWS consoles (Cognito, DynamoDB, IAM, Lambda, API Gateway), making deployment error-prone and time-consuming.
Backend is implemented in Java 8, a legacy runtime, and the code is not easily adaptable to other popular serverless languages like Python or Node.js.
Only includes an iOS client sample, neglecting Android or web clients, which reduces its utility for cross-platform projects.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.