Master Java Web Services and REST API with Spring Boot

Video description

This video course offers a comprehensive overview of developing both SOAP and RESTful web services using Spring Boot, Spring Web MVC, Spring Web Services, and JPA. The course begins with an introduction to the basics of RESTful web services and their significance in a microservices architecture.

The course is divided into two parts: RESTful web services and SOAP web services. In the first part, you will learn the fundamentals of RESTful web services by developing resources for a social media application. You will explore various features such as versioning, exception handling, documentation (Swagger), basic authentication (Spring Security), filtering, and HATEOAS, along with best practices in designing RESTful web services.

Throughout the course, you will be working with various tools and frameworks, such as Spring (dependency management), Spring MVC (or Spring REST), Spring Boot, Spring Security (authentication and authorization), Spring Boot Actuator (monitoring), Swagger (Documentation), Maven (dependencies management), Eclipse (IDE), Postman (REST services client), and the Tomcat embedded web server.

By the end of the course, you will have a solid understanding of how to develop both SOAP and RESTful web services using Spring and be able to apply these skills to real-world projects.

What You Will Learn

  • Design resources and execute GET, POST, and DELETE operations
  • Implement validation for RESTful web services
  • Handle exceptions in RESTful web services
  • The concept of HATEOAS and how to implement it for a resource
  • Different approaches to versioning RESTful services
  • Use Postman to make requests to RESTful services

Audience

If you are looking to acquire a foundational understanding of web services and associated terminology and want to learn how to develop and design RESTful and SOAP web services, this course is perfect for you. Whether you are an experienced Java developer seeking to expand your skills, or a Spring expert looking to leverage your knowledge, this course has everything you need to take your web services proficiency to the next level.

About The Author

In28Minutes Official: Ranga Karanam is a seasoned technologist and architect with over two decades of expertise in programming, design, and architecture. He founded in28Minutes with the goal of helping students master cutting-edge cloud-native technologies such as AWS, Azure, Google Cloud, Docker, and Kubernetes. With 15 years of experience in Java programming and design, Ranga has collaborated with top banking clients worldwide.

His passion for creating hands-on courses with real-world projects motivated him to develop the Step-By-Step series of courses that follow a problem-solution-based approach, with practical and real-world application examples.

Ranga and his team at in28Minutes specialize in Java and related frameworks such as Spring, Spring Boot, Spring MVC, Struts, and Hibernate. They are committed to equipping learners with the skills and knowledge necessary to succeed in today’s rapidly evolving technology landscape.

Table of contents

  1. Chapter 1 : Getting Started
    1. Introduction to Course and Course Guide
  2. Chapter 2 : Introduction to Web Services
    1. Introduction to Web Services - An Overview
    2. What Is a Web Service?
    3. Important Questions related to Web Services
    4. Web Services - Key Terminology
    5. Introduction to SOAP Web Services
    6. Introduction to RESTful Web Services
    7. SOAP Versus RESTful Web Services
  3. Chapter 3 : Introduction to Spring Framework in 16 Steps
    1. Step 01 - Getting Started with Spring Framework - Goals
    2. Step 02 - Setting Up New Spring Project with Spring Initializr
    3. Step 03 - Iteration 1 - Building Tightly Coupled GameRunner and MarioGame
    4. Step 04 - Understanding Tight Coupling
    5. Step 05 - Iteration 2 - Loose Coupling Level 1 - Interfaces
    6. Step 06 - Exploring Loose Coupling with Interfaces – Pacman Game
    7. Step 07 - Iteration 3 - Loose Coupling Level 2 - Spring Framework
    8. Step 08 - Q1 - Spring Framework - Understanding What's Happening in the Background
    9. Step 09 - Q2 - Spring Framework - Understanding Important Terminology
    10. Step 10 - Q3 - Spring Framework - Does Spring Framework Add Value
    11. Step 11 - Q4 - Spring Framework - Running Super Contra
    12. Step 12 - Q5 - Spring Framework - Maven
    13. Step 13 - Exploring Spring Framework Dependency Injection Types
    14. Step 14 - Exploring Spring Modules
    15. Step 15 - Exploring Spring Projects
    16. Step 16 - Getting Started with Spring Framework - Review
  4. Chapter 4 : Introduction to Spring Boot in 14 Steps
    1. Step 01 - Getting Started with Spring Boot - Goals
    2. Step 02 - Understanding the World Before Spring Boot – 10,000 Feet Overview
    3. Step 03 - Setting Up New Spring Boot Project with Spring Initializr
    4. Step 04 - Build a Hello World API with Spring Boot
    5. Step 05 - Understanding the Goal of Spring Boot
    6. Step 06 - Understanding Spring Boot Magic - Spring Boot Starter Projects
    7. Step 07 - Understanding Spring Boot Magic - Autoconfiguration
    8. Step 08 - Build Faster with Spring Boot DevTools
    9. Step 09 - Get Production Ready with Spring Boot - 1 - Profiles
    10. Step 10 - Get Production Ready with Spring Boot - 2 - ConfigurationProperties
    11. Step 11 - Get Production Ready with Spring Boot - 3 - Embedded Servers
    12. Step 12 - Get Production-Ready with Spring Boot - 4 - Actuator
    13. Step 13 - Understanding Spring Boot Versus Spring Versus Spring MVC
    14. Step 14 - Getting Started with Spring Boot - Review
  5. Chapter 5 : SOAP Web Services with Spring and Spring Boot
    1. SOAP Web Services - An Overview
    2. Step 01 - Initialize a Spring Web Services Application with Spring Boot
    3. Step 02 - Overview of Creating SOAP Web Service Using Contract First Approach
    4. Step 03 - Define Request and Response XML Structure
    5. Step 04 - Define XML Schema Definition (XSD) for Request - GetCourseDetailsReque
    6. Step 05 - Define XML Schema Definition (XSD) for Response - GetCourseDetailsResp
    7. Step 06 - More about XML Schema Definition and Implementing XSD Best Practices
    8. Step 07 - Introduction to Java API for XML Binding (JAXB) and Configuring JAXB 2
    9. Step 08 - Configuring an Endpoint for GetCourseDetailsRequest
    10. Step 09 - Spring Web Services Configuration - Message Dispatcher Servlet
    11. Step 10 - Spring Web Services Configuration - Generating WSDL
    12. Step 11 - Using Wizdler to Execute SOAP Requests
    13. Step 12 - Implementing a Service - Course Details Service - Backend with Memo
    14. Step 13 - Implementing SOAP Web Service for GetAllCourseDetailsRequest
    15. Step 14 - Quick Introduction to Different Parts of a WSDL
    16. Step 15 - Implementing SOAP Web Service for DeleteCourseDetailsRequest
    17. Step 16 - Improving the DeleteCourseDetailsRequest - Using an Enum for Status
    18. Step 17 - Exception Handling and SOAP Fault Responses
    19. Step 18 - Implementing Security for SOAP Web Services with WS Security
  6. Chapter 6 : RESTful Web Services with Spring and Spring Boot
    1. Step 00 - Creating a REST API with Spring Boot - An Overview
    2. Step 01 - Initializing a REST API Project with Spring Boot
    3. Step 02 - Creating a Hello World REST API with Spring Boot
    4. Step 03 - Enhancing the Hello World REST API to Return a Bean
    5. Step 04 – What's Happening in the Background? Spring Boot Starters and Autoconfign
    6. Step 05 - Enhancing the Hello World REST API with a Path Variable
    7. Step 06 - Designing the REST API for Social Media Application
    8. Step 07 - Creating User Bean and UserDaoService
    9. Step 08 - Implementing GET Methods for User Resource
    10. Step 09 - Implementing POST Method to Create User Resource
    11. Step 10 - Enhancing POST Method to return correct HTTP Status Code and Location
    12. Step 11 - Implementing Exception Handling - 404 Resource Not Found
    13. Step 12 - Implementing Generic Exception Handling for All Resources
    14. Step 13 - Implementing DELETE Method to Delete a User Resource
    15. Step 14 - Implementing Validations for REST API
    16. Step 15 - Overview of Advanced REST API Features
    17. Step 16 - Understanding Open API Specification and Swagger
    18. Step 17 - Configuring Auto-Generation of Swagger Documentation
    19. Step 18 - Exploring Content Negotiation - Implementing Support for XML
    20. Step 19 - Exploring Internationalization for REST API
    21. Step 20 - Versioning REST API - URI Versioning
    22. Step 21 - Versioning REST API - Request Param, Header, and Content Negotiation
    23. Step 22 - Implementing HATEOAS for REST API
    24. Step 23 - Implementing Static Filtering for REST API
    25. Step 24 - Implementing Dynamic Filtering for REST API
    26. Step 25 - Monitoring APIs with Spring Boot Actuator
    27. Step 26 - Exploring APIs with Spring Boot HAL Explorer
  7. Chapter 7 : Introduction to JPA in 12 Steps
    1. Step 01 - Getting Started with JPA and Hibernate - Goals
    2. Step 02 - Setting Up New Spring Boot Project for JPA and Hibernate
    3. Step 03 - Launching Up H2 Console and Creating Course Table in H2
    4. Step 04 - Getting Started with Spring JDBC
    5. Step 05 - Inserting Hardcoded Data Using Spring JDBC
    6. Step 06 - Inserting and Deleting Data Using Spring JDBC
    7. Step 07 - Querying Data Using Spring JDBC
    8. Step 08 - Getting Started with JPA and EntityManager
    9. Step 09 - Exploring the Magic of JPA
    10. Step 10 - Getting Started with Spring Data JPA
    11. Step 11 - Exploring Features of Spring Data JPA
    12. Step 12 - Understanding Difference Between Hibernate and JPA
  8. Chapter 8 : Connecting RESTful Web Service to JPA
    1. Step 27 - Connecting REST API to H2 Using JPA and Hibernate - An Overview
    2. Step 28 - Creating User Entity and Some Test Data
    3. Step 29 - Enhancing REST API to Connect to H2 Using JPA and Hibernate
    4. Step 30 - Creating Post Entity with Many-to-One Relationship with User Entity
    5. Step 31 - Implementing a GET API to Retrieve All Posts of a User
    6. Step 32 - Implementing a POST API to Create a Post for a User
    7. Step 33 - Exploring JPA and Hibernate Queries for REST API
    8. Step 34 - Connecting REST API to MySQL Database - An Overview
    9. Step 34z - Optional - Installing Docker
    10. Step 35 - Optional - Connecting REST API to MySQL Database - Implementation
    11. Step 36 - Implementing Basic Authentication with Spring Security
    12. Step 37 - Enhancing Spring Security Configuration for Basic Authentication
  9. Chapter 9 : RESTful Web Services - Best Practices
    1. Richardson Maturity Model
    2. RESTful Web Services - Best Practices
  10. Chapter 10 : Congratulations
    1. Congratulations
  11. Chapter 11 : Appendix - Introduction to Functional Programming in 30 Minutes
    1. Step 00 - Introduction to Functional Programming - Overview
    2. Step 01 - Getting Started with Functional Programming with Java
    3. Step 02 - Writing Your First Java Functional Program
    4. Step 03 - Improving Java Functional Program with Filter
    5. Step 04 - Using Lambda Expression to Enhance Your Functional Program
    6. Step 05 - Do Functional Programming Exercises with Streams, Filters, and Lambdas
    7. Step 06 - Using Map in Functional Programs - with Exercises
    8. Step 07 - Understanding Optional Class in Java
    9. Step 08 - Quick Review of Functional Programming Basics

Product information

  • Title: Master Java Web Services and REST API with Spring Boot
  • Author(s): In28Minutes Official
  • Release date: March 2023
  • Publisher(s): Packt Publishing
  • ISBN: 9781789130133