Module 1: Introduction
	- Microservices and RESTful APIs with Spring Boot and Spring Cloud
 
	- Congratulations
 
Module 2: Introduction To Web Services
	- What is a Web Service?
 
	- Important How Questions related to Web Services
 
	- Web Services - Key Terminology
 
	- Introduction to SOAP Web Services
 
	- Introduction to RESTful Web Services
 
	- SOAP vs RESTful Web Services
 
Module 3: Restful Web Services with Spring Boot
	- Section Introduction - RESTful Web Services with Spring Boot
 
	- Initializing a RESTful Services Project with Spring Boot
 
	- Fastest Approach to Solve All Your Exceptions
 
	- Understanding the RESTful Services we would create in this course
 
	- Creating a Hello World Service
 
	-  Enhancing the Hello World Service to return a Bean
 
	- Quick Review of Spring Boot Auto Configuration and Dispatcher Servlet
 
	- Enhancing the Hello World Service with a Path Variable
 
	- Creating User Bean and User Service
 
	- Implementing GET Methods for User Resource
 
	- Implementing POST Method to create User Resource
 
	- Enhancing POST Method to return correct HTTP Status Code and Location
 
	- Implementing Exception Handling - 404 Resource Not Found
 
	- Implementing Generic Exception Handling for all Resources
 
	- Exercise : User Post Resource and Exception Handling
 
	- Implementing DELETE Method to delete a User Resource
 
	- Implementing Validations for RESTful Services
 
	- Implementing HATEOAS for RESTful Services
 
	- Overview of Advanced RESTful Service Features
 
	- Internationalization for RESTful Services
 
	- Internationalization for RESTful Services
 
	- Content Negotiation - Implementing Support for XML
 
	- Configuring Auto Generation of Swagger Documentation
 
	- Introduction to Swagger Documentation Format
 
	- Enhancing Swagger Documentation with Custom Annotations
 
	- Monitoring APIs with Spring Boot Actuator
 
	- Implementing Static Filtering for RESTful Service
 
	- Implementing Dynamic Filtering for RESTful Service
 
	- Versioning RESTful Services - Basic Approach with URIs
 
	- Versioning RESTful Services - Header and Content Negotiation Approach
 
	- Implementing Basic Authentication with Spring Security
 
	- Overview of Connecting RESTful Service to JPA
 
	- Creating User Entity and some test data
 
	- Updating GET methods on User Resource to use JPA
 
	- Updating POST and DELETE methods on User Resource to use JPA
 
	- Creating Post Entity and Many to One Relationship with User Entity
 
	- Implementing a GET service to retrieve all Posts of a User
 
	- Implementing a POST service to create a Post for a User
 
	- Richardson Maturity Model
 
	- RESTful Web Services - Best Practices
 
Module 4: Microservices with Spring Cloud
	- Section Introduction - Microservices with Spring Cloud
 
	- Introduction to Microservices
 
	- Challenges with Microservices
 
	- Introduction to Spring Cloud
 
	- Advantages of Microservices Architectures
 
	- Microservice Components - Standardizing Ports and URL
 
	- Intro to Limits Microservice and Spring Cloud Config Server
 
	- Setting up Limits Microservice
 
	- Creating a hard coded limits service
 
	- Enhance limits service to get configuration from application properties
 
	- Setting up Spring Cloud Config Server
 
	- Installing Git
 
	- Creating Local Git Repository
 
	- Connect Spring Cloud Config Server to Local Git Repository
 
	- Configuration for Multiple Environments in Git Repository
 
	- Connect Limits Service to Spring Cloud Config Server
 
	- Configuring Profiles for Limits Service
 
	- A review of Spring Cloud Config Server
 
	- Introduction to Currency Conversion and Currency Exchange Microservice
 
	- Setting up Currency Exchange Microservice
 
	- Create a simple hard coded currency exchange service
 
	- Setting up Dynamic Port in the the Response
 
	- Configure JPA and Initialized Data
 
	- Create a JPA Repository
 
	- Setting up Currency Conversion Microservice
 
	- Creating a service for currency conversion
 
	- Invoking Currency Exchange Microservice from Currency Conversion Micro
 
	- Using Feign REST Client for Service Invocation
 
	- Setting up client side load balancing with Ribbon
 
	- Running client side load balancing with Ribbon
 
	- Understand the need for a Naming Server
 
	- Setting up Eureka Naming Server
 
	- Connecting Currency Conversion Microservice to Eureka
 
	- Connecting Currency Exchange Microservice to Eureka
 
	- Distributing calls using Eureka and Ribbon
 
	- A review of implementing Eureka, Ribbon and Feign
 
	- Introduction to API Gateways
 
	- Setting up Zuul API Gateway
 
	- Implementing Zuul Logging Filter
 
	- Executing a request through Zuul API Gateway
 
	- Setting up Zuul API Gateway between microservice invocations
 
	- Introduction to Distributed Tracing
 
	- Implementing Spring Cloud Sleuth
 
	- Introduction to Distributed Tracing with Zipkin
 
	- Installing Rabbit MQ
 
	- Running Zipkin on Windows
 
	- Setting up Distributed Tracing with Zipkin
 
	- Connecting microservices to Zipkin
 
	- Use spring-cloud-starter-zipkin and spring-rabbit
 
	- Using Zipkin UI Dashboard to trace requests
 
	- Understanding the need for Spring Cloud Bus
 
	- Implementing Spring Cloud Bus
 
	- Implementing Spring Cloud Bus
 
	- Fault Tolerance with Hystrix
 
	- Microservices Characteristics