Building a REST API with Spring Boot
So you want to learn Spring Boot? And you know some Java? Do you want to build a real application as if you were on a real project? Yes, yes, and yes? Awesome! Then, this course is for you!
In this beginner level course, our Spring experts guide you through building and deploying a fully functional, secure, well-tested RESTful API for a hypothetical Family Cash Card application.
You'll be building a simple Family Cash Card application — a modern way for parents to manage allowance funds for their kiddos.
Parents often find themselves lacking an easy way to manage (i.e. send, receive, track) allowances for their kids. So instead of handing out a stack of bills, our cloud-based Family Cash Card app allows parents to virtually manage "cash cards" for their kiddos. You can think of the cash card being very similar to a gift card that many of us send and receive. The primary goal of the Family Cash Card app is to give parents ease and control over managing funds for their children.
You'll use Spring Boot to progress from creating a single cash card in a database to allowing for the editing, deleting, and viewing of multiple cash cards, and finally securing your app against unauthorized access and unwanted exploits.
This course is designed to help you build a solid foundation in Spring Boot, so you can take what you learn and apply it to your projects in the real world. By the end of the course, you'll be able to:
- Utilize Spring Boot to build a complete RESTful API while understanding the benefits and tradeoffs of REST.
- Learn what Spring Boot offers to application developers and how it differs from the Spring Framework.
- Build Web applications with Spring Web.
- Use Spring Data to connect databases and map relational data to Java objects.
- Use Spring Security to develop software with a Security First approach.
The Labs in this course provide an interactive terminal and editor, so you don’t need any specific tools installed on your own machine.
In order to get the most out of this course, you should have working knowledge of Java. Knowledge of a similar language, such as C#, is also useful, but we assume you already have knowledge of the Java ecosystem, libraries, etc.
Rather than structuring this course like formal documentation or a referenceable textbook, we’ve approached it as a real-world development project. So what does this mean?
The lessons are not about Spring Boot technical topics. Instead, lessons are centered on a specific task that you might encounter during a project. Additionally, rather than cover each Spring Boot technology in depth, we’ll only cover enough technology to complete each specific task and to understand in general what is going on “under the hood” in the application. We’ll also explain why we’re making the choices we make, and what other options and trade-offs exist.
For example, when covering Spring Web to set up one API endpoint, we’ll introduce only the Spring Web pieces needed to get the endpoint working rather than the entirety of Spring Web functionality, which is highly robust!
Another unique quality of this course is our Test-First approach to development. In the Labs, you will usually be writing tests before the implementation, then adding implementation in order to make your tests pass.
We'll approach building our application using a Steel Thread. The idea is to first create a "thread" through all the integration points of the application. Completing the thread first has advantages, including:
- Incremental delivery: It results in an end-to-end, executable application to which we can add functionality.
- Risk mitigation: It can reveal hidden technical hurdles throughout the system earlier rather than later.
The three integration points in our application are the API "front door", the database, and security.
This course is a great introduction to Spring Boot. If you're looking to expand your knowledge even more, we recommend following up with our Spring Essentials course. And if you tack on our Spring Boot course, you'll have completed all the prerequisites for the Spring Certified Professional exam!
The Building a REST API with Spring Boot course is for Java developers who want to learn Spring Boot. In this course you’ll build a RESTful API for a Family Cash Card service. In doing so, you’ll learn how to use Spring Boot to build a fully-functional application. We take a project-based, test-first approach, rather than a technology-based approach.
Staff Solutions Architect, Software Engineer
Carlton is a veteran of product and consulting companies where he's been writing and delivering software for longer than he cares to admit.
Senior Staff Engineer, Software Consultant, XP nerd
Joe is a passionate software engineer and Agile (XP!) practitioner with a mission to help others achieve amazing outcomes through software.
Spring Developer Advocate, open-source hacker, book/video author and speaker
Josh has been the first Spring Developer Advocate since 2010. Josh is a Java Champion, an author of 6 books, a producer of best-selling video training, an open-source contributor, a podcaster, and a YouTuber.
Help us improve by sharing your thoughts.