
This quick 2 minute overview gives you a good introduction to:
The subject matter of the course
Your Instructor
How the course is structured
Student profile for the course
In this demo we cover:
The business use case the course covers
A hands on overview of the entire solution you'll build step by step
Overview of:
What webhooks are
Alternative pattern
Why you should use webhooks
In this section we detail:
The overall Solution Architecture
The Application Architecture
This section details what you need to get going in following along with this course, including the links to the relevant resources.
In this lecture as well as setting up the initial project, we:
Discuss self signed certificates
Add the following packages
Automapper
Entity Framework / SQL Server
RabbitMQ
Packages added to support:
RabbitMQ
Entity Framework & SQL Server
Dependency Injection
Host Construction
HTTP Client Factory
In this lecture we:
Briefly discuss business domains, and decomposing services.
Allocate a ports
And packages to support
Entity Framework and SQL Server
In this lecture we create the docker-compose.yaml file that sets up:
SQL Server Express
RabbitMQ
In this lecture we:
Talk ab out Dependency Injection (DB Context in to Controller Constructor)
Start our POST (Create) API Endpoint
Set up 2 DTOs:
DTO for Creating
DTO for Reading
Create Model to DTO Mapping Profile using AutoMapper
In this lecture we:
Use Automapper Via DI
Use the Map Command
Use Entity Framework to Add Data to DB
In this lecture we cover:
REST Theory - Returning the route to the endpoint
Naming our endpoint and CreatedAtRoute
In this lecture we use Insomnia to test our Webhook Registration Endpoint.
In this lecture we create a new Model to host our Flight details, we also discuss:
Precision of our decimal (for Flight Price)
Adding this model to our existing DB Context
In this lecture we:
Finish Profile mapping
Test the End Point with Insomnia
In this lecture we start to pull together a 1st cut of our PUT endpoint used for updated Flight Details.
In this lecture we start out Webhook Registration page by:
Adding Static File Support to our .NET app
Adding Bootstrap
Building out our HTML Form elements
In this lecture we complete our Webhook Registration page by introducing JavaScript, specifically we:
Augment our UI
Hook in to button click event
Using fetch to call our API
Discuss Cross Origin Resource Sharing (CORS)
Test the web page
In this lecture we set up most of our Travel Agent Webhook POST endpoint, we cover:
Architecture Checkpoint
Models,
DTOs
DBContext
Migrations
Controller
In this lecture we finish up our Travel Agent POST endpoint by:
Reviewing our base build
Creating the POST endpoint
In this hands-on, "no fluff / no filler" course we take a practical approach to building a working solution that uses Webhooks. We'll cover some theory to start, but very quickly we jump into the practical step by step solution build which forms the vast majority of the course.
During the build, we will create 3 separate .NET Projects to simulate a fictional airline and its travel-agent customers. This approach will give students a real-world grounding in the use of webhooks and the value they bring to industry. The projects we build are:
Airline Web
Webhook Registration REST API
Flight Details REST API - used to trigger webhook by publishing to RabbitMQ message bus
Simple HTML / JavaScript / Bootstrap Web Client to make webhook registration API calls
Airline Send Agent
Stand alone "agent" used to send webhooks "en-mass"
Dependency Injection enabled
RabbitMQ Subscriber / Consumer with event based message delivery
Uses HttpClient and HttpClientFactory
Travel Agent Web
Simple Webhook POST Endpoint
Uses SQL Server backend to retrieve webhook "secret" to authenticate webhooks
We also use Docker Compose to set up and run following solution fabric:
RabbitMQ Server
Microsoft SQL Server
Students should be aware that we use VSCode as the development tool of choice, so students wanting to learn with Visual Studio should consider this carefully before purchasing.
Source Code is downloadable as a Lecture Resource.
Slideware is downloadable as a Lecture Resource