Introduction of the Spring Boot course. In this spring boot course, you’ll learn how to create a REST API with Spring Boot from start to finish, i.e not just coding but from project set up through to deployment. For this course, we are going to create a REST API that would save, retrieve and delete comments of blog posts. Check out the introduction module for the list of requirements of the API. Following are the modules - Project set up - Design - Implementation with unit testing and integration testing. - Deployment Let’s take a closer look at each module. Project set up --------------- Here I show you two different methods of setting up the project. You could choose to use either one depending on your preference. This module is a part of the free preview, so if you sign up for the free trial you could check this out. This module consists of two lessons, Lesson 1: Set up the project using Spring initializer In this lesson, we look at, - How to use the spring initializer to create a project. - Spring starter dependencies. - Discuss the content i.e each and every line, of the generated build file. Lesson 2: Set up the project using Gradle without Spring initializer In this lesson, - We set up the project manually using Gradle. - Generate a java project using Gradle command line. - Work on the build file to add the required plugins and dependencies. - Discuss core Gradle plugins, community plugins and the Gradle plugins portal. - Then generate the eclipse configuration files and import the project to eclipse. Design -------- This module is consolidated into one lesson. Lesson 3: Design In this lesson we discuss, - What is REST - Some basic REST API design principals - Design the Comments API - Application architecture of a Spring Boot project. Testing and implementation ---------------------------- This module consists of several lessons on unit testing implementation and also integration testing the API. Lesson 4: Endpoint implementation to retrieve comments - part 1 (The Controller) In this lesson, we implement a method to return all comments of a particular post, in a test-first manner. That means, as, in all of the implementations throughout the project, we write unit tests before writing a single line of logic. Lesson 5: Endpoint implementation to retrieve comments - part 2 (The Service) In this lesson, we move the business logic to the service layer by refactoring the controller and unit tests. Lesson 6: Endpoint implementation to retrieve comments - part 3 (The Repository) In this lesson, we move on to the repository layer and discuss - Spring Data - How to use the repository interfaces Lesson 7: Integration testing - part 1 - MockMVC - Spring’s testing support and annotations - Request builders - Result matchers... Lesson 8: Making a Spring Boot Application This lesson is also a part of the free preview, so if you sign up for the free trial you could check this out. Here we discuss the spring boot annotations and then add all the required annotations to wire everything up and make the application work. - Spring boot annotations Lesson 9: Spring Transaction handling In this lesson, we discuss the following - What does transactional mean in terms of executing a method? - Overview of how spring transaction management works - @Transactional annotation and its settings - How to apply transaction management with @Transactional annotation. - How readOnly applies to transactions. - Transaction configuration settings Lesson 10: Integration testing - part 2 Here we continue the integration testing - use JSONPath expressions to assert the response body. - Preload and clean up the database before and after a test using script files and annotations. - Return relevant response codes upon exceptions. Lesson 12: Endpoint implementation to save a comment Unit tests and implementation of the endpoint for saving a comment. Lesson 13: Integration testing part 3 Write some integration tests for saving the comment Lesson 14: End to end test - Run the application in eclipse - Save a comment via postman - Retrieve the saved comment in the browser. Lesson 15: Endpoint implementation to delete a comment - Unit tests and implementation of the endpoint for deleting a comment. - Physical delete vs Logical delete. Lesson 16: Integration testing part 4 Write some integration tests for deleting the comment Deployment ------------ Lesson 17: Deployment Various ways of running the application and war deployment to an external server. Lesson 18: External database - Connect to MySQL server. - How to use the embedded database for integration testing while using an external database for production. You can download the completed project at various stages. Links to all references are provided in each module.