
Explore microservices versus monolithic architectures and learn to build and secure restful web services with Spring Boot, Eureka discovery server, API gateway, JWT, and Spring Security, plus config server.
Follow the course in order, download and reference the source code, and master debugging with breakpoints and error messages to efficiently build restful microservices with Spring Boot.
Explore microservices as a fine-grained, loosely coupled set of small web services, each handling a single responsibility and deployable independently via http in the cloud.
Explore a microservices architecture where each service handles a single domain with its own database and communicates via HTTP or queues, with discovery service, API gateway, and config server.
Learn to download, install, or use Postman’s web version to send HTTP requests and inspect responses. Set up a workspace and explore the Postman interface to create and send requests.
Navigate Postman's user interface, create requests in collections, test get and other http methods against a local api, and generate curl or other language code snippets.
Master restful uris by structuring resources and collections with nouns, plurals, and path parameters to access specific resources like users and messages.
Learn how http methods drive create, read, update, and delete operations in a Spring Boot microservice, using post for create, get for read, put for update, and delete for removal.
Explain how http content-type and accept headers select json or xml payloads, enabling server-side json-to-java object conversion and the need to configure supported formats to avoid errors.
Install the Java development kit from Oracle, download Java Standard Edition, confirm the version, and set JAVA_HOME on Mac OS for use with Spring Tool Suite or NetBeans.
Download and install Sprint tools for Eclipse to build and debug Spring microservices, using the sprint tools download page and install via macOS DMG.
Start building a restful web service with Spring Boot in this quick-start section, and decide whether to skip by assessing your knowledge of basic web services and Spring Cloud.
Create a new Spring Boot project in Spring Tool Suite using a web dependency, Maven, and a pom.xml, configuring for RESTful web services with Tomcat.
Learn how to create a new spring boot project quickly with spring initializer, select maven and java, and add web dependencies for RESTful services and tomcat deployment.
Create a user rest controller class by annotating with RestController and RequestMapping, exposing endpoints under /users to handle create, update, and delete user operations.
Build a Spring Boot REST API with get, post, put, and delete methods bound to mappings to manage user details via CRUD operations, returning placeholder strings before JSON payload integration.
Run a Spring Boot web service by configuring and launching the app, then verify CRUD endpoints via HTTP methods (GET, POST, PUT, DELETE) in Postman on port 8080.
Learn to read a user ID from the URL path using the @PathVariable annotation in a /users/{id} endpoint, bind the path value to a method parameter, and test with Postman.
Learn how to read and use query string parameters in Spring Boot microservices, implementing page and limit for paginated /users responses with @RequestParam, and handling required vs optional parameters.
Learn to make query parameters optional or required in a spring boot GetUsers method, assign default values, and avoid null pointer errors by handling nulls.
Create a user rest object with first name, last name, email, and user id, and return it as JSON (or XML) from the get user details API.
Learn how to configure a Spring Boot REST endpoint to return user details in XML or JSON by using Accept headers and multiple media types, enabling XML support with Jackson.
Learn to control http responses in a spring boot service by returning a response entity with a body, status, and optional headers using codes like 200, 400, 401, and 500.
Learn to handle http post requests and read json or xml payloads by binding the request body to a Java model with @RequestBody.
Enable HTTP post body validation in Spring Boot by applying Hibernate Validator constraints such as not empty, email, and size, using @Valid to trigger validation.
Store user records temporarily in an in-memory Java map and manage post, get, and delete mappings in a Spring Boot app, returning JSON or XML.
Learn how to implement http put for updating user details in a Spring Boot microservice, including path variable handling, request body validation, and returning updated user data.
Master http delete requests with the delete mapping annotation, read the path variable user id, remove the user from the users map, and return a 204 no content response entity.
Implement centralized exception handling in a Spring restful app using controller advice and exception handler to return structured error responses (json or xml) for null pointer and other exceptions.
Create a custom error message class with timestamp and message, then return it in the response body, letting the framework serialize to json or xml.
Implement a specific exception handler for null pointer exceptions using a dedicated method, customize business logic, and test with a custom user service exception.
Define and throw a custom runtime exception in a Spring Boot REST service, then catch it with a dedicated exception handler to return a tailored message to clients.
Learn to catch multiple exceptions with one method in a spring boot controller advice by listing exception classes in the handler annotation and testing with debugging and postman.
Learn to implement dependency injection in a Spring Boot REST app by creating a user service interface and implementation. Autowire into the controller to enable independent testing with mocks.
Learn constructor based dependency injection in Spring by injecting a utility class into a user service, using the @Autowired and @Service annotations, with Spring auto-wiring components at runtime.
Learn to build and run a Spring Boot restful web service as a standalone executable jar with an embedded Tomcat, using Maven, and test with Postman.
Discover how the Eureka discovery service, a Netflix project now in Spring Cloud, lets microservices register and discover each other, enabling automatic scaling and seamless API gateway coordination.
Create a Eureka discovery server with Spring Boot, add the Eureka Server dependency, and configure using Spring Tool Suite or Spring Initializr for a Maven jar project.
Configure a Spring Boot project to act as a standalone Eureka server by annotating the main class with Enable Eureka Server and setting properties such as server.port, spring.application.name, and eureka.instance.hostname.
Start building a users microservice that handles registration and login, plus get, update, and delete user details, registers with a Eureka server, and can be tested via Postman.
Create a new Spring Boot users microservice to manage user details via a web API and act as a Netflix Eureka client, connecting to a Eureka discovery server.
Enable discovery client in the Spring Boot app to register with a Eureka server and configure a random port, application name, Eureka service URL, and devtools restart.
Create a new rest controller in the user's microservice presentation layer to expose a /users/status endpoint via @RestController, @RequestMapping, and @GetMapping that returns 'working'.
Start the Eureka discovery server and the users microservice to register with Eureka, then verify the registration on the Eureka dashboard and test the /users/status/check endpoint.
Learn to set up a paired microservices architecture with a new account management service and a users service, register them with Eureka, and prepare for API gateway integration.
Create a new Spring Boot Project
Create a new RestController
Enable Eureka Discovery Client
Register the account management microservice with the Eureka discovery server and verify its status at /account/status/check; then register the users microservice and confirm both are running.
Switch from Zul to Spring Cloud API gateway, aligning Spring Boot and Spring Cloud versions. Follow new lessons on Spring Cloud API gateway integration with the config server.
Introduce Zuul API gateway as a single entry point for microservices, routing requests via Eureka and Ribbon, with JSON web token validation.
Create a spring boot microservice that acts as a Zuul api gateway by adding web, devtools, discovery, and Zuul dependencies and configuring it as a Eureka client.
Run the Eureka discovery server and microservices, then use the Zul API gateway as a single entry point to access the users web service and account web service.
Explore how the Zoo gateway acts as a load balancer and router with the pre-packaged ribbon, delivering a default configuration that balances http requests across multiple user microservice instances.
Start multiple instances of the users microservice with a discovery server and Eureka, assigning unique instance ids and ports either randomly or via command line arguments using application properties.
Discover how the Zul api gateway load balancer distributes http requests across multiple microservice instances, revealing each instance's port via a status check.
Note that Zul API gateway is in maintenance mode and introduces Spring Cloud API gateway to route http requests to microservices, with migration guidance and config server setup.
Learn how Spring Cloud Gateway routes http requests to microservices via Eureka Discovery Service, with built-in and custom filters, including jwt validation for secure routing.
Create a Spring Boot API gateway project with Spring Cloud Gateway, add routing and WebFlux dependencies, and include a discovery client to register with Eureka.
Enable discovery locator in spring cloud gateway to auto map http requests to Eureka-registered microservices using the service name, then adjust with lowercase service id settings for URL routing.
Configure a route in Spring Cloud API gateway to route requests to Eureka-registered microservices using path and method predicates, and remove cookies with a filter for JWT validation.
Configure and verify a Spring Cloud API gateway by registering with Eureka, routing http get requests to the users microservice by querying addresses from Eureka, and handling port changes transparently.
Map an external URL path to an internal path in Spring Cloud API gateway using the rewrite path filter, supporting regex for flexible path rewrites.
Explore how Spring Cloud API gateway combines manual routes with the Discovery locator to automatically map and route HTTP requests, validating with status checks using paths with and without users.
Start multiple instances of the users microservice with a discovery server, assign unique instance IDs, and verify each registration on the Eureka dashboard.
Start multiple instances of users microservice and verify spring cloud api gateway load balances requests among them. Use an environment object to read instance ports and observe routing via Eureka.
This course requires you to download Docker Desktop. If you are a Udemy Business user, please check with your employer before downloading software.
This video course is for Beginners who have never build RESTful Web Services and Microservices before. It will guide you step-by-step through basics and will help you create and run RESTful Microservices from scratch. You will learn how to run Microservices on your own developer's machine as well as in Docker Containers on AWS EC2 Linux machines.
By the end of this course, you will have your own RESTful Spring Boot Microservices built and running in Spring Cloud.
You will learn how to create and run your own:
RESTful Microservices,
Eureka Discovery Standalone Server,
Eureka Discovery Server Cluster,
Zuul API Gateway,
Spring Cloud API Gateway,
Load Balancer,
Spring Cloud Config Server,
You will learn to use:
Spring Cloud Bus and Rabbit MQ,
Spring Boot Actuator
You will also learn how to implement for your REST API features like:
User Authentication(Login) and,
User Authorization(Registration),
Role-based access control(RBAC)
You will learn to use:
Spring Security and JWT
You will learn how to use:
Spring Data JPA to store user details in a database,
H2 in-memory database and a database console,
MySQL database server,
Postman HTTP Client,
Spring Tool Suite,
Spring Initializer
This course also covers how to:
Trace HTTP Requests with Spring Cloud Sleuth and Zipkin(Distributed tracing)
Aggregate log files in one place(Centralized logging) with ELK stack(Logstash, Elasticsearch, Kibana).
You will also learn how to:
Start up AWS EC2 Linux machine,
Install Docker,
Create Docker images,
Run Microservices in Docker containers on multiple EC2 Linux machines in Amazon AWS Cloud.