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