Introduction (10m)FREE PREVIEW
- Agenda, Your Instructor, Course Structure
- How To Use This Course
REST Introduction (1h 5m)FREE PREVIEW
- Introduction
- Introducing REST
- Richardson Maturity Model
- API-First
- What We Will Build
- Project Setup
Building REST APIs (4h 25m)
- 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
HATEOAS and Change Management (1h 32m)
- Introduction
- Hypermedia As The Engine Of Application State
- Quick Code Refactoring
- Implementing HATEOAS
- Content Negotiation
- API Versioning
- Implementing API Versioning
- API Change Management
Authentication and Authorization (2h 7m)
- 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
Client (UI) Integration With REST APIs (50m)
- Introduction
- Introducing the React Client Application
- Adding the Entries Resource, GitHub Integration
- Batch Resource Creation
- HATEOAS: Driving Client Behavior
- OpenAPI and HTTP Client Generation
Advanced REST API Concerns (1h 36m)
- 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
Testing REST APIs (1h 7m)
- 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
Documenting REST APIs (34m)
- 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
Deployment and Monitoring (56m)
- 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 - Building REST APIs With Minimal APIsCOMMUNITYThis chapter is available in the Community edition.
- 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 - REST API Case Studies