Build Your REST API with Spring

from HTTP fundamentals to API Mastery

What makes a good REST API?

I published the first REST with Spring tutorials over four years ago, and after 900,000 readers and over a thousand personal questions over email, I’ve finally realized there is a huge education gap in the ecosystem.

I had to learn what makes a good API the hard way, and I couldn’t find anything out there to help me speed things up. It took me 3 years, more than 10 production grade APIs built from scratch and a decent number of mistakes to get to a mature understanding of how an API should really be done well.

Sure, there were tutorials and random code samples out there, but nothing coherent. Nothing start to finish to act as a guide through the challenges of building a mature API with Spring. The educational gap between beginner and the API professional remains vast.

API mistakes are expensive

The landscape of the Web has changed significantly over the last few years, and REST APIs have seen massive growth. Today, most non-trivial applications need to expose an API at some point, and the trend is only going up.

APIs are also public, which means you need to get them right from the start, because they’re very expensive to change.

There’s never been a better time to learn the finer points of REST with Spring.

“A Video Course is so much better than anything else at delivering education in general & coding know-how in particular.”

The REST with Spring Video Lessons

Each video module contains multiple, in-depth lessons along with walkthroughs, full code examples and resources, all helping you understand the inner working of building an API with Spring from initial architecture to deployment. Each of the 2 classes below feature a different level of education:

The Master Class

Is where you go from the basics of building an API with Spring to getting into production with your application. The 14 in-depth modules show you how build out a mature REST API with Spring and Spring Boot, start to secure it, get it deployed and monitored.

You’ll also consume it from JS front-end, make it discoverable with HATEOAS and create a CI pipeline for the project, all the way to prod.

The Certification Class

Is where the professional developer will find the greatest value. This class contains all 14 modules of the Master Class, and multiple-choice questions to help you get the most out of the material. At the end, you’re going to get your “Certificate of Completion”.

I was a bit worried initially that I wouldn’t be spending my money meaningfully. But I wanted to learn about HATEOAS, CI with Jenkins and about deployment of the app (which is the focus of the Master Class). Now I can say that it is a great course that costs almost nothing. Despite working in Spring for almost two years, I am getting a lot of new information and in a systematic way.

I want to add that this is the first time I am learning from video materials and it’s definitely an efficient approach and a lot of fun. I’m not only getting a good grasp on REST with Spring but also improving my English.

– L’ubomír Koník, Master Class student


I’ve crafted the Master Class material, with the help of over 2300 students now, to be the start-to-finish guide for the developer working through a Spring REST API implementation

Learn by Building an Actual API

The lessons start with the fundamentals of building a practical REST API with Spring and quickly guides you through the more advanced tactics of a mature, well architected system.

But what makes REST with Spring unique is that you won’t just learn how to create a well-designed API. You’ll learn how to get that API into production, how to monitor it and how to make sure it stays up and running.

My name is Eugen, and I’ll be your instructor through the course.

I’ve been in the Java ecosystem for well over a decade now, and I’ve been building APIs in one form or another, for almost as long. And of course I’ve been teaching and writing about Spring and REST APIs throughout all of that time.

The advanced modules in the Master Class are a brain dump of what I learned throughout more than 100 API implementations and show you exactly how to avoid common mistakes and get the API over the finish line.

You’ll learn how not to break your clients when new requirements come in, how to set up your testing and continuously deploy into a production environment.

Eugen has delivered a course like no other. I have learned so much so quick, I felt as though my head was inside some sort of knowledge blender.

As I have taken many courses in Spring and have used Spring religiously since 2007, I can only say good things about the style presented in this course. Nothing is left to chance – from configuration, to error handling to restful best practices to security to just about any detail worth knowing about APIs in Spring Boot (or Spring for that matter) it’s all in here.

This is the kind of course people would happily pay thousands of dollars for, and yet, it is perhaps the most affordable course I have ever taken in this domain. If I were to to have a life coach in Spring, it would most certainly be Eugen.

-Willhelm Lehman, Java Architect at Measurabl, Master Class student

The Master Class

The canonical reference for building a production grade API with Spring. The 14 modules cover building and securing the API for production use, advanced evolution and discovery techniques, client code to consume it from the front end, comprehensive monitoring, continuous integration, continuous deployment, and more.

In addition to the detailed guides on implementation, you’ll also get the knowledge needed to run the API in production reliably and consistently. You’ll get templates of my time-tested Spring API implementations along with the understanding of how to use these to get your own APIs out and into the hands of clients quickly.

Everything I wish I had access to when I built my first API with Spring.

1. The Basics of REST with Spring

5 LESSONS (4 Video + 1 Text) ~ 2.5 HOURS

  1. The Anatomy of a REST API 
  2. The User Management Project: A Full API 
  3. Application Startup (text)
  4. Properties and Project Settings 
  5. The Web Configuration

2. REST and HTTP Semantics

6 LESSONS (Video) ~ 4.5 HOURS

  1. Exception Handling and Sane HTTP Status Codes (2 parts) 
  2. The Basics of Input Validation 
  3. Good URI Practices 
  4. Leverage HTTP Verbs and Semantics 
  5. Support both XML and JSON (Preview lesson) 
  6. The Lifecycle of a Request (Preview lesson)

3. Simple Security for REST

5 LESSONS (Video) ~ 3 HOURS

  1. Simple Spring Security for the API 
  2. Global URL vs Method Level Authorization (2 parts) 
  3. Understanding Cookies and the Session 
  4. Certificates and HTTPS for Tomcat 
  5. The Topology of Roles and Privileges

4. Consuming the API from Angular

3 LESSONS (Video) ~ 2 HOURS

  1. The UI Project and Basic REST from AngularJS 
  2. Dealing with CORS (2 parts) 
  3. Working with OAuth2 and Tokens (JWT) from the front-end

5. Testing the API

5 LESSONS (Video) ~ 3.5 HOURS

  1. The First Live API Tests – Introducing rest-assured (2 parts) 
  2. How To Build a Client for the API (2 parts) 
  3. How to test HTTP semantics 
  4. A Good Base API Tests for Any Resource 
  5. Contract Testing – A Special Kind Of Test

6. Advanced API Security: OAuth2 & JWT

5 LESSONS (Video) ~ 3 HOURS

  1. How OAuth2 Works for REST (2 parts) 
  2. Set Up OAuth2 with Spring Security (legacy stack) (2 parts) 
  3. Tokens, OAuth2 and JWT (legacy stack) (Preview lesson)
  4. Refreshing a Token (legacy stack) 
  5. How To Do OAuth from the Front End

7. Document, Discover and Evolve the REST API

5 LESSONS (Video) ~ 3.5 HOURS

  1. Document the API with Swagger (Preview lesson)
  2. The Basics of HATEOAS (2 parts)
  3. Advanced Scenarios with Spring HATEOAS
  4. How To Evolve the API without Breaking Clients (3 parts)
  5. Decouple the Controller from Entities (3 parts)

8. Monitoring and API Metrics

5 LESSONS (Video) ~ 3 HOURS

  1. Fundamentals of Monitoring with Boot (Preview lesson)
  2. Custom Metrics for the API
  3. Monitoring Data over JMX (2 parts) 
  4. Displaying Metrics over HTTP
  5. Production Grade Tools for Monitoring

9. DevOps: CI and CD Pipelines, Deployment

5 LESSONS (Video) ~ 3 HOURS

  1. Setting Up Jenkins and The First Job (2 parts) 
  2. A Simple Jenkins Pipeline From Scratch (2 parts) 
  3. Remote Deployment for the API 
  4. From Continuous Integration to Continuous Deployment (2 parts) 
  5. Load Balance the REST API on EC2

10. Advanced API Tactics

4 LESSONS (Video) ~ 2.5 HOURS

  1. ETags in REST (Preview lesson)
  2. A Simple API Rate Limiting Implementation 
  3. Binary Data Formats in a Spring REST API
  4. REST, Async and Long Running Requests (2 parts)

11. A Reactive REST API

3 LESSONS (Video) ~ 2.5 HOURS

  1. Moving Past the Servlet – Going Reactive 
  2. How to Build a Reactive REST API (2 parts) 
  3. Understanding the new WebClient (2 parts) 

12. New in Spring

4 LESSONS (Video) ~ 2.5 HOURS

  1. Using the New Bean Validation 2.0 
  2. Using Kotlin to Build the API (2 parts) 
  3. Functional Bean Registration 
  4. New Indexing Alternative to Classpath Scanning 

13. New in Spring MVC

4 LESSONS (Video) ~ 2 HOURS

  1. External Base Path for Controllers (2 parts) 
  2. What’s Possible with the ResponseStatusException 
  3. JSON Binding API, the Jackson Alternative 
  4. Advanced Web Path Matching

14. Spring Boot

4 LESSONS (Video) ~ 2 HOURS

  1. Intro to Spring Boot 
  2. Using Spring Boot 
  3. Boot Internals – Auto-Configuration and Beyond (2 parts) 
  4. Testing in Spring Boot

The Certification Class

I’ve built this new class with the direct feedback of over 2000 students who have gone through the course.

This class contains the same material as the Master Class and goes beyond it with:

Of course, if you have any questions about the material, ping me directly here, or over email.

~40 Hours


I only started learning Spring and Spring Boot recently, having come from SAP JEE and the ABAP integration world for the last 10 years. I have done courses on other topics on Udemy in the past, and to be honest, a lot of them were just awful with bad trainers who clearly did not know the material, unstructured topics or bad video and sound quality.

I was hoping this would live up to my expectations and it definitely has. The course is great from the get-go – top quality English presentation, things are explained clearly and in detail in the IDE, including exactly what the annotations and the code snippets do (often, trainers skip these key bits leading to lots of questions and confusion). I like things like the Transcript PDFs and lesson References — as this is how I self-study anyway so it’s a really good structure.

The main take-away for me was good application design and architecture as I can see the focus on these topics early on, which is really important to me. Too often, I find thrown-together solutions in tutorials or courses and I have to read tons more stuff to build something fit for production. You really put emphasis on proper design from the start, and the fundamental concepts and terminology, important in any domain.

I had a brilliant hardware and operating systems professor many years ago and he said always to take extra time out to get the fundamentals and not speed ahead without knowing fully why you do it or how it works in detail. You remind me of him, so it’s refreshing that you explain things so well.

The modules are made up of short chunks, so you can take time out of even a busy day and learn something new and understand the Spring details you may think you already know. To keep it short, I definitely recommend the course.

Niall Guerin

Master Class student

“The modules are made up of short chunks, so you can take time out of even a busy day and learn something new.”

Master Class

Go beyond the Basics of REST with Spring with the full 14 in-depth modules
  • 14 Modules (all - lifetime access)
  • 68 Video Lessons
  • -
  • -
  • -

Certification Class

This Class includes the Master Class material, downloads and the Certificate of Completion
  • 14 Modules (all - lifetime access)
  • 68 Video Lessons
  • + Exercises in Each Lesson
  • + Full Downloads for All Videos
  • + Certificate of Completion

REST With Spring + Learn Spring - Certification Class

Get started with Spring and get from the fundamentals to API mastery
  • 23 Modules (all - lifetime access)
  • 115 Video Lessons
  • + Exercises in Each Lesson
  • + Full Downloads for All Videos
  • + Certificate of Completion

If you’re looking to get both this course as well as Learn Spring Security,

have a look at the Bulk Package 

Do you have a team who would benefit from taking the course?


20-Day Money Back Guarantee

I believe strongly in the quality of the course material to teach you the fundamentals of API design as well as the advanced tactics to take your API into production. I’ve put a lot of work and care into the material and hope you’re going to use it and really make your REST APIs a lot better.

I confidently back all classes with a 20-Day Money Back Guarantee. I want you to dive in deep and experience the full wealth of this resource without hesitation.

If the material isn’t a good fit, just contact me within 20 days of purchase, and ask for a full refund for any single course package.

Really dives deep into the inner workings of Spring. Steps through the framework in action and explains each step along the way. A lot of advanced material in one place and excellent Instructor feedback. I emailed the instructor multiple times during the course asking for clarification on the material. Each time he was quick to reply and help me out.
Mike Hamer
Master Class student
I bought the class because it was focused on production-grade code. I'm planning to use Spring / REST in my next contract, and so it was very important for me that I was working with material that wasn't too simplistic, abstract or otherwise toy code. I only have very high things to say about it.
Chris Perks,
Lead Developer at Draw / Oliver Wyman
The course is well structured and focused on building a REST API with Spring Boot. Many aspects of REST API development are covered and Eugen goes out of the way to explain theory as well as live coding - showing you how to accomplish the task at hand.
Justin Calleja,
Developer at RakeTech Group
I love the flexibility that I can login anytime with no pressure and I can learn according to my schedule/speed. This is the best material I’ve experienced compared to similar Coursera and Udemy courses.
Judy Wang
Master Class student
I was able to use what was shown in the video/learning material directly in my own project. That itself was worth the subscription cost several times. Thank you Eugen. This was exactly what I was looking for.
Hans-Jacob Melby
Senior Consultant at Computas AS
I want to keep all this knowledge to myself, haha, only joking - I've read about Swagger and just couldn't get my head around what the benefits are, after viewing that Swagger video, I now get it. The Swagger documentation is awesome.
Jan Mostert,
Idea Incubator, Platform Architect
I always thought I knew this stuff, but I seem to learn new tidbits all the way through, and it is also a great review for the parts I'm a little rusty on (or maybe always wondered about).
David McLure
Software Engineer at Pivotal
The course helped me quite a bit, as it goes into quite a lot of detail, which other courses don't. It is obvious that it’s done with a lot of expertise. I learned a lot here - from CORS to error handling to authentication and authorization.
Ali Alhabib
Vice President of Web Solutions at SolicitiCloud
What helps a lot is the fact that the videos and the course material are in absolute sync. I’ve subscribed myself in the past to other online courses on the same subject but often found those to be out of date and referring to older versions of the framework.
Stephan Dhaene
Sr. J2EE Analyst/Developer at Cegeka
I found the classes extremely helpful. I bought the course to prepare for a very important interview and I nailed it. However, the course has proven to be an amazing reference material and the way Eugen explains it with details is unique. Thank you so much for this work, keep it up.
Vicente Martinez Gomez
Senior Applications Developer
I've been working as a Java developer for quite a few years. Still, only after taking the course, I got a profound understanding of Spring, its internal workings and know how to really tweak my code to fit our customers requirements and demand for APIs that are evolving. I can really recommend this to anyone who wants to elaborate their understanding and productivity.
Ronny Mandal
Senior Software Engineer