112  
csharp
 
Search  
RU EN
Apr 24, 2022

MediatR with .NET 6.0

Author:
HungryWolf
Source:
Views:
4901
MediatR with .NET 6.0 favorites 0

What is MediatR? Why do we need it? And How to use it?

Mediator Pattern - The mediator pattern ensures that objects do not interact directly instead of through a mediator. It reduces coupling between objects which makes it easy to maintain the code. Mediator pattern unified the service interfaces around a common design, one request in, one response out.

MediatR is a simple, unambitious mediator implementation in .NET.

Let’s now dive deeper into the working of a simple web API with MediatR. Complete code for the same can be found here.

1. Create a new web API project.

OpenAPI support makes it easy to test the API.

2. Create a folder with these three classes.


Solution Hierarchy

2.1 ApiRequestModel: This class represents a request for API.


ApiRequestModel

IRequest<> It represents a request with a response.

2.2 ApiResponseModel : This class represents a response of API.


ApiResponseModel

2.3 ApiHandler: And this class keeps the logical part.


ApiResponseModel

IRequesthandler<> binds request and response with handler class. The logic of API is kept in the Handle method.

3. Now let’s check the controller. I wrote a base controller that would be inherited by other controllers.


ApiControllerBase

ISender is responsible for communication between different mediator-linked objects. It sends a request through a mediator pipeline to be handled by a single handler.

In this code, HomeController is inheriting the base controller. ApiController communicates with ApiHandler based on ApiRequestModel and ApiResponseModel pair.


ApiController

You can test this API using swagger (OpenAPI).

From the above example, you can see a separation of request, response, logic, and communication using MediatR. And if you want to move to CQRS (Command and Query Responsibility Segregation) pattern, the mediator makes the transition seamless.

Similar
Jan 13, 2023
Author: Jaydeep Patil
We are going to discuss the Unit of Work design pattern with the help of a generic repository and step-by-step implementation using .NET Core 6 Web API. Agenda Repository Pattern Unit of Work Step-by-step Implementation Prerequisites Visual Studio 2022 SQL...
Jan 18, 2023
Author: Jay
Aha! There is always something intimidating about Dependency Injection. I distinctly remember a couple of years ago, telling a .Net recruiter for a contract project, that, “I had no idea what DI is” He immediately stopped talking to me. It’s...
May 2, 2024
Author: Salman Karim
Long polling is a server-push technique used in web applications to efficiently update clients with new information. Unlike traditional polling, long polling keeps the request open until the server has new data to send. This method is beneficial when you...
Nov 29, 2023
Author: Rico Fritzsche
Streamline Your .NET 8 Projects with the Power of MediatR and Blazor In this article, I want to revisit how the Vertical Slice Architecture can be used. This article takes an in-depth look at feature slicing and its application to...
Send message
Type
Email
Your name
*Message