Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Pragmatic REST APIs
00 - Introduction
Agenda, Your Instructor, Course Structure (6:51)
How To Use This Course (3:05)
01 - REST Introduction
Introduction (1:26)
Introducing REST (19:39)
Richardson Maturity Model (8:08)
API-First (3:43)
What We Will Build (3:37)
Project Setup (28:39)
02 - Building REST APIs
Introduction (2:02)
HTTP Methods (7:26)
HTTP Status Codes (9:37)
Designing REST APIs - Best Practices (13:41)
Introducing the Database, EF Core (23:20)
Getting Resources - GET (15:36)
Creating Resources - POST (15:43)
Updating Resources - PUT (12:02)
Partially Updating Resources - PATCH (14:02)
Deleting Resources - DELETE (7:43)
Adding Another Resource (11:09)
Working With Child Resources (24:57)
REST API Validation, Problem Details (21:37)
Exception Handling (12:19)
Supporting Searching and Filtering (11:28)
Supporting Sorting (24:18)
Implementing Pagination (15:50)
Supporting Data Shaping (22:02)
03 - HATEOAS and Change Management
Introduction (1:51)
Hypermedia As The Engine Of Application State (10:40)
Quick Code Refactoring (5:55)
Implementing HATEOAS (31:15)
Content Negotiation (12:09)
API Versioning (6:46)
Implementing API Versioning (14:41)
API Change Management (9:03)
Stop Here: A Quick Intermission
A Quick Question (0:29)
04 - Authentication and Authorization
Introduction (1:53)
Authentication in REST APIs (8:44)
Adding the Users Resource (5:31)
Introducing ASP.NET Core Identity (9:11)
Implementing User Registration (14:48)
Token Based Authentication, JWT (17:48)
Supporting Refresh Tokens (10:32)
Protecting Resources: Owner Authorization (14:59)
Role-Based Authorization (9:30)
Advanced Authorization - RBAC, ABAC (5:32)
Integrating With External APIs (16:51)
Protecting Sensitive Data With Encryption (11:15)
05 - Client (UI) Integration With REST APIs
Introduction (2:11)
Introducing the React Client Application (16:11)
Adding the Entries Resource, GitHub Integration (7:08)
Batch Resource Creation (4:41)
HATEOAS: Driving Client Behavior (10:17)
OpenAPI and HTTP Client Generation (9:04)
06 - Advanced REST API Concerns
Introduction (1:59)
HTTP Caching (16:20)
Optimistic Locking, Concurrency Control (8:39)
Cursor Pagination (16:41)
Refit - Automatic HTTP Client Generation (10:10)
HTTP Resilience, Polly (9:14)
Rate Limiting and REST APIs (9:05)
Idempotence and REST APIs (8:36)
Webhooks (4:47)
Building Asynchronous REST APIs (10:13)
We're 2/3 Through the Course!
A Small Favor? (0:30)
07 - Testing REST APIs
Introduction (1:18)
Unit Testing and REST APIs (14:37)
Unit Testing: The Complete Picture (3:42)
Integration Testing REST APIs (18:46)
Testing External Services Using WireMock (11:29)
Integration Testing: The Complete Picture (5:06)
Functional Testing - Creating End-to-End Tests (5:54)
Automated Testing in CI/CD Pipelines (6:14)
08 - Documenting REST APIs
Introduction (1:50)
OpenAPI Support in .NET (3:47)
Introducing Swagger for Documenting APIs (5:50)
Adding Rich REST API Documentation (8:37)
Documenting Multiple API Versions (5:41)
Documenting Authentication (4:28)
Exploring OpenAPI UI Alternatives - Scalar (4:16)
09 - Deployment and Monitoring
Introduction (2:08)
Deploying the Client Application to Azure (6:40)
Deploying the Database and Applying Migrations (9:40)
Deploying the REST API to Azure (12:56)
Adding Monitoring With Application Insights (8:37)
Automating Deployments With GitHub Actions (15:37)
Wrapping Up: A Small Ask
A Note From Me + Small Ask (0:33)
BONUS - REST API Case Studies
Case Study: Patreon API (19:40)
A Note From Me + Small Ask
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock