In this series of liveProjects, you will take on the role of a developer for travel company SimpleTravel. It offers an all-inclusive trip booking service to customers. With the growth of SimpleTravel, more customers ask for flexible queries, but this is almost impossible to achieve with its REST APIs. After a couple of internal meetings it was decided to implement GraphQL APIs to replace the existing APIs.
Each project in this series covers a different stage of the replacement process until you have a fully functioning GraphQL API with authentication in place. We will start with the creation of a data source using Amazon DynamoDB, then implement the GraphQL API using AWS AppSync. We will then protect this API using Amazon Cognito.
In this liveProject, you’ll use the Amazon DynamoDB NoSQL database to replace SimpleTravel’s relational database. The company decided to use DynamoDB as its flexible schema is well suited to the changing nature of the data being stored. Furthermore, it’s fully managed by AWS so the company doesn’t need to deal with servers and low-level configurations. Once you’ve created the data store, you will implement a Lambda function to query data from it.
In this liveProject, you’ll use a GraphQL API implemented using AWS AppSync to add a new hotel to SimpleTravel’s records. Then, you’ll implement a GraphQL subscription to automatically notify consumers who are interested in these events. This approach will modernize the API for the travel company, supporting the scaling of its business.
In this liveProject, you’ll use Amazon Cognito to restrict access to a GraphQL API. Previously, SimpleTravel’s APIs were publicly accessible. But you’ve seen a surge of new customers, and now your boss wants to ensure that access is limited to authorized users. Your challenges include creating an Amazon Cognito user pool and implementing group-based authorization in AWS AppSync.
This liveProject is for software developers who have set up their own AWS accounts and know the AWS console. To begin this liveProject you will need to be familiar with the following:
In this liveProject, you’ll learn to build a complete GraphQL API including security features such as authorization.