What's inside

Everything you need to build production-ready REST APIs

.NET 10

Latest features for modern REST APIs

PostgreSQL

Reliable, scalable persistence

React

SPA client integration for your API

Azure

Cloud deployment & monitoring

01Fundamental

REST Introduction

Start with a solid foundation in REST principles — the Richardson Maturity Model, the API-First approach, and setting up your development environment.

1h 5m6 lessons
Watch a free preview
02Fundamental

Building REST APIs

Master HTTP methods, status codes, and REST best practices. Implement CRUD operations, child resources, validation, searching, filtering, sorting, and pagination.

4h 25m18 lessons
Building REST APIs
03Intermediate

HATEOAS and Change Management

Make your APIs discoverable with HATEOAS. Learn content negotiation, API versioning strategies, and how to manage API changes effectively.

1h 32m8 lessons
HATEOAS and Change Management
04Intermediate

Authentication and Authorization

Secure your APIs with token-based authentication, JWT, and refresh tokens. Implement role-based and attribute-based authorization, and protect sensitive data.

2h 7m12 lessons
Authentication and Authorization
05Intermediate

Client Integration

Integrate REST APIs with client applications. Build a React client, implement batch operations, and use HATEOAS to drive UI behavior with OpenAPI client generation.

50m6 lessons
Client Integration
06Advanced

Advanced REST API Concerns

Level up with HTTP caching, optimistic locking, cursor pagination, rate limiting, and webhooks. Build resilient and asynchronous REST APIs.

1h 36m10 lessons
Advanced REST API Concerns
07Intermediate

Testing REST APIs

Master unit, integration, and end-to-end testing. Test external services using WireMock and set up automated testing in CI/CD pipelines.

1h 7m8 lessons
Testing REST APIs
08Intermediate

Documenting REST APIs

Create comprehensive API documentation with OpenAPI/Swagger. Document multiple versions and authentication flows, and explore modern UIs like Scalar.

34m7 lessons
Documenting REST APIs
09Advanced

Deployment and Monitoring

Deploy your REST APIs to Azure, manage database migrations, and implement monitoring with Application Insights — automated with GitHub Actions.

56m6 lessons
Deployment and Monitoring
Get instant access

More than just theory

We build a complete REST API from scratch — from basic CRUD to HATEOAS, authentication, and automated testing. Plus bonus courses to master modern REST API development.

REST API Case Studies From Successful Companies
Bonus course #1

REST API Case Studies From Successful Companies

Analyze real-world REST APIs from successful companies. Learn from their design decisions, best practices, and implementation strategies.

Building REST APIs With Minimal APIsCommunity
Bonus course #2

Building REST APIs With Minimal APIs

Build lightweight, high-performance REST APIs using .NET Minimal APIs — and see if they are a match for REST.

Integrating Auth0 as the Identity ProviderCommunity
Bonus course #3

Integrating Auth0 as the Identity Provider

Integrate Auth0 with your REST APIs for robust authentication and authorization, including client integration.

After completing this course you will

  • Build production-ready REST APIs with confidence
  • Implement secure and scalable authentication systems
  • Master REST API testing and documentation
  • Confidently deploy your APIs to production

Start building better REST APIs today

One-time payment. Lifetime access, including every future update.

PRA

$247
+ applicable tax
  • 9 in-depth chapters
  • 14+ hours of video content
  • Bonus: Case Studies
  • Lifetime access
  • Email support
BEST VALUE

PRA + Community

$397
+ applicable tax
  • 9 in-depth chapters
  • 16+ hours of video content
  • Bonus: Case Studies
  • Bonus: Minimal APIs
  • Bonus: Auth0 Integration
  • Lifetime access
  • Priority support
  • Community access

Not sure yet? Preview the free lessons before you buy.

Paying with company money? You'll get a receipt you can submit for reimbursement.

The full curriculum

9 chapters plus bonus courses, all production-focused.

IntroductionFree preview
  • Agenda, Your Instructor, Course Structure
  • How To Use This Course
01REST IntroductionFree preview
  • Introduction
  • Introducing REST
  • Richardson Maturity Model
  • API-First
  • What We Will Build
  • Project Setup
02Building REST APIs
  • Introduction
  • HTTP Methods
  • HTTP Status Codes
  • Designing REST APIs - Best Practices
  • Introducing the Database, EF Core
  • Getting Resources - GET
  • Creating Resources - POST
  • Updating Resources - PUT
  • Partially Updating Resources - PATCH
  • Deleting Resources - DELETE
  • Adding Another Resource
  • Working With Child Resources
  • REST API Validation, Problem Details
  • Exception Handling
  • Supporting Searching and Filtering
  • Supporting Sorting
  • Implementing Pagination
  • Supporting Data Shaping
03HATEOAS and Change Management
  • Introduction
  • Hypermedia As The Engine Of Application State
  • Quick Code Refactoring
  • Implementing HATEOAS
  • Content Negotiation
  • API Versioning
  • Implementing API Versioning
  • API Change Management
04Authentication and Authorization
  • Introduction
  • Authentication in REST APIs
  • Adding the Users Resource
  • Introducing ASP.NET Core Identity
  • Implementing User Registration
  • Token Based Authentication, JWT
  • Supporting Refresh Tokens
  • Protecting Resources: Owner Authorization
  • Role-Based Authorization
  • Advanced Authorization - RBAC, ABAC
  • Integrating With External APIs
  • Protecting Sensitive Data With Encryption
05Client (UI) Integration With REST APIs
  • Introduction
  • Introducing the React Client Application
  • Adding the Entries Resource, GitHub Integration
  • Batch Resource Creation
  • HATEOAS: Driving Client Behavior
  • OpenAPI and HTTP Client Generation
06Advanced REST API Concerns
  • Introduction
  • HTTP Caching
  • Optimistic Locking, Concurrency Control
  • Cursor Pagination
  • Refit - Automatic HTTP Client Generation
  • HTTP Resilience, Polly
  • Rate Limiting and REST APIs
  • Idempotence and REST APIs
  • Webhooks
  • Building Asynchronous REST APIs
07Testing REST APIs
  • Introduction
  • Unit Testing and REST APIs
  • Unit Testing: The Complete Picture
  • Integration Testing REST APIs
  • Testing External Services Using WireMock
  • Integration Testing: The Complete Picture
  • Functional Testing - Creating End-to-End Tests
  • Automated Testing in CI/CD Pipelines
08Documenting REST APIs
  • Introduction
  • OpenAPI Support in .NET
  • Introducing Swagger for Documenting APIs
  • Adding Rich REST API Documentation
  • Documenting Multiple API Versions
  • Documenting Authentication
  • Exploring OpenAPI UI Alternatives - Scalar
09Deployment and Monitoring
  • Introduction
  • Deploying the Client Application to Azure
  • Deploying the Database and Applying Migrations
  • Deploying the REST API to Azure
  • Adding Monitoring With Application Insights
  • Automating Deployments With GitHub Actions
BONUS — REST API Case Studies
  • Case Study: Patreon API
BONUS — Building REST APIs With Minimal APIsCommunity
  • Introduction
  • Migrating GET Endpoints - Collection Resources
  • Migrating GET Endpoints - Single Resource
  • Migrating POST Endpoints
  • Migrating PUT Endpoints
  • Migrating PATCH Endpoints
  • Migrating DELETE Endpoints
  • HATEOAS With Minimal APIs
  • API Versioning With Minimal APIs
  • Documenting Minimal APIs
  • Minimal APIs and REST - Pros and Cons
BONUS — Integrating Auth0 as the Identity ProviderCommunity
  • Introduction
  • Auth0 Identity Provider Setup
  • Client Integration With Auth0
  • Assigning Roles to Users With Auth0 Management API
  • REST API Integration With Auth0
  • Testing the Complete Authentication Flow
Get the full course
Course student
Course student
Course student
Course student
Course student
Course student

1,900+ engineers shipping better code

Loved by developers

What students are saying about PRA

20 student reviews

Absolutely fascinating, i have got better understand on how to structured api, more insight on content negotiations, and change management of an Api, i am getting value for the lecture.

Benson Shedrach

I can only start by giving a huge shoutout/thank you to Milan for this course (and also his other courses). His courses really supported me in my journey towards professional software development. The courses are of high quality, easy to follow and very well explained with the highest amount of detail. I also respect that Milan couples theory with practice by going back to the origin of the concepts that are discussed and, with that approach also honors the people who came up with the theoretical concepts in the first place. I definitely recommend Milan's courses if you want to start gaining new knowledge or improve upon existing knowledge of software development and related principles/concepts.

Youri Torchalski

This course is exceptional. My biggest challenge was the lack of a clear, consistent strategy for API design. Milan’s pragmatic approach provides a solid framework for building truly RESTful and scalable APIs. Absolutely recommended for any developer looking to level up their skills.

Joshua Cajina

Thank you Milan for this course as it introduced me to various important topics lile Rate limiting, Caching and retry mechanism using Polly. I thoroughly enjoyed watching the video and coding along with it. The topics covered for deploying and monitoring were also very helpful as it covers devops which gives developers the extra edge. Thank you for making me a better developer.

Vishnu Vishweshwar

There's no denying it, this course is very well done and structured. And it exactly reflects the title: pragmatic. It gets straight to the point on how to create APIs that are clear, adaptable, and maintainable. The lessons are not at all boring or difficult. One can follow the video to get a general understanding of the lesson and then go back and write the code. The part on telemetry, if you have never seen and tried it, is really worthwhile. If I really have to find a flaw, I have to say that I would have preferred a re-reference. I look forward to the other sections of the course.

Alessandro

Milan takes you step by step and progressively introduces complex topics as he layers new information onto that of previous lessons. He gives concrete examples on how to apply this knowledge. My biggest challenge was actually how to organize and structure API code. Milan shows us so may elegant ways to solve code challenges - I have learned so much from him! Milan edits his videos to present the information at a great pace and cadence, and he explains complex coding topics in a very understandable way. This course can definitely show you how to level up when it comes to writing robust REST APIs using the latest standards and best practices. I recommend this course as well as his other courses and material to any developer, noob or OG.

Joe M

The best part about this course? Consistency and structure of information, and the number of areas the course touches. My personal challenge is that I am familiar with the majority of the information from this course, but I have a lack of structure and consistency in my knowledge and skills. And that is what the course brings to me - it levels up my overall understanding of how to build REST APIs. I can use it as a reference to particular topics and as a step-by-step instruction in my day-to-day work. I absolutely recommend it to other developers!

Mykhailo Hutsalenko

A well-structured course for developers of all levels. A major upside is the integration with a client application and the deployment to production, it really covers everything you need to know to make your work run smoothly in real-life environments.

Horia Apostol

After some courses, finally I see the HATEOAS properly implemented. The best thing about this course is making the evolution of the source code chapter by chapter, apply refactoring where it is required and knowing why. The biggest challenge before the course was lack of professional experience applying HATEOAS. The info in this course is going to enhance my current architecture, definitely I recommend this course to other developers.

Fredy Guibert

So far, the course has been excellent! I've learned new things, and best of all, the content is taught in a practical way, focused on real-world challenges.

Régis Lima

This course stood out to me for its clear structure and comprehensive coverage of all three levels of REST APIs. My biggest challenge before taking it was understanding some of the more complex concepts, but the instructor’s approach made everything much clearer. The knowledge I gained is now helping me apply best practices to my professional and personal projects, significantly improving the quality of my APIs. Without a doubt, I highly recommend this course to any developer looking to deepen their understanding in this area.

Kodindo M.

I'm so grateful for this course! Before taking it, my biggest challenge was understanding how to properly support HATEOAS in my API designs. Now, thanks to all the knowledge I've gained, I have a much better understanding of what we can do to offer superior RESTful APIs. The course has truly transformed my approach to API development. I would definitely recommend it to other developers looking to enhance their skills!

Emanuel Rodriguez

The best thing about this course is that it clearly explained all the key concepts I always wondered about — things like rate limiting, HTTP caching, idempotence, content negotiation, ETag validation, RBAC/ABAC, optimistic locking, and many more. Before the course, I often found myself asking “what does this really mean?” and struggling to connect the dots between theory and real-world usage. Now, I feel much more confident thanks to the clear explanations and examples. I believe everything I’ve learned here will help me build cleaner, more resilient and scalable APIs. I’d definitely recommend this course to any developer working with APIs. It was a valuable experience. Thank you!

Selçuk Bilgen

The best thing about this course is the practicality of the lessons and how concise the instructor, Milan, is. The direct approach makes learning efficient and enjoyable. Before the course, the biggest challenge was the lack of knowledge about important details in building APIs, which are crucial but often overlooked. The course provides valuable insights and details that will significantly improve the quality of the APIs I develop, enhancing my personal project. I strongly recommend this course to other developers. The instructor, Milan, delivers practical and impactful lessons, and following him on YouTube can also be highly beneficial.

Leandro Karam Quintas

As engineers we solve problems, this course gives you a deep understanding of Rest and HATEOS, but more importantly, to me, is the pragmatic approach to problem solving and the iterative approach to resolving issues. The process that most of us go through every day is silent but Milan eloquently explains his thought process. The biggest challenge I face is the evolving .NET landscape and completing things in a timely manner. When you spend a lot of time involved with digital transformation it's easy to lose pace and fall behind. These courses keep me current and allow me to provide solutions that are forward thinking. This course catches you up on modern approaches from a deep engineering perspective. The lessons are organized and presented perfectly. This young man has skills! As far as my recommendation goes it is without hesitation that every single one of Milan's courses and instructional videos should be studied when time permits. I benefit every day from every one of his lessons as I seek to become the best .NET developer I can be.

Colin J Stansfield

I'd consider myself an intermediate developer who has mainly been exposed to the Microsoft ecosystem. I've been wanting to learn more about properly writing APIs as I think about moving to another SPA away from Blazor. This course has been a great place for me to learn and expand my knowledge. Not only is Milan clear and knowledgeable but I love his way of starting basic and going back and refactoring rather than jumping in the deep end. Add to that his meticulous approach and you've got yourself one hell of a teacher. I also love the things he teaches me alongside the core elements of the course. These have been a real valuable lesson for me. I'm following this course as I try and rewrite our internal app for work. Milan, thank you, you're making this process so enjoyable.

Paul Pitchford

This course is highly valuable for both beginners and experienced .NET developers looking to master REST APIs. It covers everything you need to know to implement REST APIs effectively, including testing, deployment, and security.

Rudy Cortembert

I discovered Milan about 1.5 years ago and I have admired him greatly since then. He is a perfect teacher for me, both in terms of his mastery of the subjects and his way of explaining. In addition to these, he is a very kind and understanding engineer. I take all his courses when I have time and follow them meticulously. I definitely recommend his courses to everyone, as they have supported me in the development of my personal software career, the change of my perspective and most importantly, in walking to the point I want to be. I am sure you will not regret it!

Burak Beşli

This is by far the best and the most comprehensive REST APIs course I have seen. Milan explained all the aspects or REST, how to apply it in real-world applications, including HATEOAS which is missed in 90% of REST APIs. You will see how HATEOAS can be really useful to drive the application state. What is really fascinating is that Milan showed a real client Web UI application, as it integrates with the built REST API. This stands out this course among the others. I really like how Milan explained all the decisions throughout this course in a pragmatic manner, explaining what works and what are the trade-offs in the real-world. I can recommend this course for everyone, after watching you will be ready to start building production ready REST APIs. You will also learn advanced topics for fetching data, caching, authentication and authorization, how to integrate with external APIs like GitHub and Patreon. And finally how to write all sort of tests for the APIs and how deploy your apps to Azure through CI/CD pipeline.

Anton Martyniuk | Microsoft MVP

I've been in the development world for years, and this REST API course has been an absolute game-changer for me. The best thing about this course is its comprehensive and practical approach—it not only covers the fundamentals of REST, from Roy Fielding’s groundbreaking work to real-world examples, but also delves deep into advanced topics like HATEOAS, API versioning, caching strategies, and robust deployment practices. Before taking this course, my biggest challenge was designing APIs that truly adhered to RESTful best practices. I struggled with creating intuitive URL designs, managing error responses effectively, and securing endpoints properly. The course's detailed modules on CRUD operations, validation, error handling, and security have completely transformed my approach, bridging all those gaps with clear, hands-on examples. What really sets this course apart is how it complements the other top-notch courses by Milan, namely Pragmatic Clean Architecture and Modular Monolith Architecture. Each course brings its own unique insights and practical strategies, forming a complete toolkit for modern web development. While the REST API course sharpened my API design and development skills, the other courses have empowered me to build maintainable, scalable, and robust systems overall. With the insights gained from this course, I'm now confident in building APIs that are scalable, secure, and user-friendly. Every aspect—from thorough testing and effective error handling to seamless deployment and comprehensive documentation—is covered in detail. I would highly recommend this course, along with the other two, to any developer looking to elevate their skills and build better, more resilient Applications and APIs. Finally, this course only leaves me in greater appreciation and awe for Milan's patience, knowledge and reasoning. Looking forward to more courses just like this one, Milan. Fantastic content as always!

Abdelrahman Ahmed
Milan Jovanović

Who's behind this

Hi — I'm Milan Jovanović. I help engineers level up their .NET and software architecture skills.

I'm a Software Architect and Microsoft MVP for Developer Technologies with years of experience building large-scale systems.

I've helped thousands of engineers improve through my practical tips on social media, The .NET Weekly newsletter, and YouTube channel.

My goal is to teach you everything I learned building and maintaining production-ready REST APIs in ASP.NET Core.

Microsoft MVP Badge

Got questions?

Frequently asked questions

  • Who is this course for?

    This course is for anyone who wants to build production-ready REST APIs in ASP.NET Core — from fundamentals to advanced concerns like HATEOAS, authentication, testing, and deployment.

  • What will I learn in this course?

    How to build a complete REST API from scratch using the latest ASP.NET Core features and best practices.

    • REST fundamentals & the Richardson Maturity Model
    • CRUD, searching, filtering, sorting, pagination
    • HATEOAS, versioning & change management
    • Authentication, authorization & security
    • Testing, documentation & deployment to Azure

    All course content is updated to .NET 10.

  • How long is the course?

    The course includes 14+ hours of video content (16+ hours with the Community edition's bonus courses), packed with value and designed to be easy to follow.

  • What does Community Access mean?

    With the PRA + Community Access plan you gain access to the Community section, plus the bonus Minimal APIs and Auth0 Integration courses. It's where like-minded engineers collaborate and get help, and I'll be there to answer questions too.

  • Got it. This must be expensive, right?

    No. It's $247 on the basic plan.

    And if you want Community access with like-minded engineers, it's $397.

  • Can my company pay for the course?

    Absolutely — many students expense the course through their employer. You'll receive a receipt after checkout that you can submit for reimbursement. If you need anything else, like a quote for multiple team seats, contact me.

  • Do I get lifetime access?

    Absolutely, yes! You can access the course forever, including any future updates, with no extra payment.

  • What are the prerequisites for taking this course?

    You should have a basic understanding of C# and ASP.NET Core. We build the API step by step, so you can follow along even if REST APIs are new to you. Familiarity with Entity Framework Core and Docker is helpful but not required.

  • What if I get stuck during the course?

    The course is carefully designed to build knowledge progressively, so the chances of getting stuck are minimal.

    If you do need help, the Community Access edition gives you direct access to me and other participants.

  • What should I do next if I want to enroll?

    Click any enroll button on this page and get started today.

Enroll now

Ready to level up?

Unlock Pragmatic REST APIs today

Join thousands of developers who have already leveled up their API design skills with this course.

Course student
Course student
Course student
Course student
Course student
Course student

1,900+ engineers shipping better code

Lifetime access
14+ hours of content
Real-world examples