API Operations and HTTP methods
Course Content
0 / 201 completedWhat is an API
REST API Resources & URIs
API Operations and HTTP methods
Introduction to REST API
Welcome from the instructor
Introduction
The multi-tier architecture and Microservices
AWS Serverless services overview
AWS Serverless architecture example
Import from Swagger or Open API 3
Method execution flow overview
Method request overview
Integration request overview
Integration response overview
Trying how it works
Method response overview
Creating a new API
Creating a new Resource
Creating HTTP Method
Query String Parameters
Returning Mock Data
Path parameter
Reading Query String Parameter in a Mapping template
Deploying Mock API
Documenting API
Reading the path parameter
Export API with Gateway Extensions
Export API and Test with Postman
Export API and Test with Swagger
Validating Request Parameters & Headers
Associate Model with HTTP Request
Validating Request Body - Creating a Model
Validating Request Body - Trying how it works
Function as a Service(SaaS)
Lambda function & other Services
Anatomy of a Java Lambda function handler
Lambda Execution Environment
Cold start, warm start & provisioned concurrency
Pricing
Adding Maven dependencies
Creating new Maven project
Creating Lambda function
Maven Shade Plugin
Creating function in AWS Console
Deploying Lambda function
Reading Request returning Response
Create new API project
Testing Lambda function with Input Template
Assigning Lambda function to API Endpoint
Creating a new IAM User
Installing AWS CLI
Configure AWS Credentials on your computer
Installing AWS SAM
Refactor project to use a different name
[Updated] Creating a new project with SAM
Read User Details JSON and return HTTP Response
SAM template - Resources
The event.json file
SAM template file overview
Invoke Remote Lambda function from local computer
SAM template - Outputs
Invoke public API Endpoint
Debug Lambda function locally
Delete AWS SAM application
Viewing logs
Deploy Lambda function to AWS
Deploying application to AWS
Creating a new Response Model
Java Map instead of APIGatewayProxy Event objects
Creating a new Request Model
Reading New Request Model
Transforming HTTP Request Payload
Configure Method Response
Trying how it works
Trying how the Response Mapping
Response Mapping Template
Reading with Query String Parameters & Headers
Deploy project
Trying how it works
Proxy Integration. Handle Exception and return custom JSON
Proxy Integration. Causing a 500 Server Error
Deploy and disable Proxy Integration
Response code & Lambda Error Regex for 500 status code
Lambda Error Regex for Different Error
Customize the Default API Gateway Error Response
Mapping template for 500 status code
Handle multiple exceptions
Deploying new code
Publishing a new version
Assign new version to API endpoint
Publish version #2
Lambda Aliases - Introduction
Using Alias in API Gateway
Creating an Alias
Trying how the Lambda Alias works
Shift traffic between two lambda versions
Create Canary
Deploy changes to Canary
Trying how it works
Promoting and Deleting Canary
Reading Environment Variables
Creating Environment Variables in AWS SAM
Creating Lambda environment variables in AWS Web Console
Environment variables encryption options
Encrypting environment variables with AWS KMS key
Creating new encryption key
Trying how it works
Decrypting Environment Variables
[Updated] Cognito User Pool Configure Sign-in Experience
[Updated] Cognito User Pool Security Requirements
[Updated] Cognito User Pool Sign-up Experience
Create User - Reading Request Body
[Updated] Cognito User Pool Message Delivery
Adding AWS SDK Cognito Dependencies
Creating CognitoUserService and CreateUser function
[Updated] Cognito User Pool Integrate App
Working on Cognito SignUpRequest
Generating Secret Hash value
Creating and using the CognitoIdentityProviderClient
User Sign-up. Trying how it works
Calling the createUser() function
Creating the Confirm User Lambda function
Implementing Confirm User Signup function
Define Confirm User Signup function in AWS SAM template
Updating Encryption & Decryption KMS Key
Encrypting environment variables
Calling the Confirm User method
Decrypting Environment Variables in Java code
Creating LoginUserHandler
Define LoginUserHandle in AWS SAM template
Calling User Login method
Implementing User Login method in the service class
Error message as jSON rather than plain text
Implementing AddUserToGroup() method
Creating a User Group
Calling the AddUserToGroup() method
Encrypting Environment Variable
Define AddUserToGroup function in AWS SAM template
Trying how the Add User To Group function works
Secure API endpoint with Cognito Authorizer
Creating GetUserHandler Lambda function
Define GetUserHandler function in AWS SAM template
Using ID token with Cognito Authorizer
Trying how it works
Calling the Get User method
Implementing Get User Details method
Validating required HTTP header
Import Open API definition into SAM template
Creating Lambda Authorizer in API Gateway
Starter project overview & source code
Lambda authorizer Output
Import Open-API configuration into AWS SAM template
Generating Policy Document
Adding JWT validation dependencies
Implement the JWT validation function
Trying how JWT validation works
Validating the JWT
Implementing the GetUserByUsername function
Add Policy to allow the AWS SAM template file
Trying how it works
Calling getUserByUsername() from handleRequest() method
Create a new API Key
Create a Usage Plan
Secure API Endpoint with API Key
Testing Pyramid
F.I.R.S.T principle
Arrange, Act, Assert
Naming a Unit Test Method
Unit Test Lifecycle methods
Adding JUnit Test Dependencies
Running and failing a test case
Mocking APIGatewayProxyRequestEvent
Creating Mock Objects
Mocking Context object
Invoke function under test
Mocking CognitoUserService class
Assertions for the CreateUserHandler Unit Test
Centralize property names
Test if function returns error message if request body is empty
Test if function returns error message when AwsServiceException takes place
Introduction to AWS CodeCommit
Git Branches
Creating Local Git Repository
Git Ignore file
Creating Remote Git Repository
Commit files to main branch
Push New Updates to a Remote Git Branch
Creating User Credentials
Creating a Pull Request
Approving and Merging Pull Request
Push Initial Commit to a Remote Git Branch
Creating a new S3 bucket
Fixing a Unit Test method
Commit BuildSpec file to main branch
Creating a BuildSpec file
Creating a new CodeBuild project
Running Code Build
CloudFormation Role
Execute a Change Set
Making code change that triggers pipeline
Creating CodePipeline to Deploy AWS Lambda