Polly with .NET 6, Part 3 - Dependency Injection of a Policy into a Minimal API Endpoint
Download full source code.
Want to learn more about Polly? Check out my Pluralsight course on it.
If you are using .NET 6 with the traditional Startup.cs
and Program.cs
, you don’t need to change anything about how you are using Polly. It all works the same.
But if you are using the new “top-level” statements and minimal API, it’s all very different.
Add Package and Using
Add the Polly NuGet package to you project -
dotnet add package Polly
In Program.cs
add a using statement at the top -
using Polly;
Policy and DI container
Create the policy and add it to the service collection -
builder.Services.AddSingleton<IAsyncPolicy<HttpResponseMessage>>(Policy.HandleResult<HttpResponseMessage>(r => !r.IsSuccessStatusCode)
.WaitAndRetryAsync(3, retryAttempt => TimeSpan.FromSeconds(retryAttempt)));
var app = builder.Build();
Endpoints and DI
Create an endpoint that returns errors 75% of the time -
|
|
Add an endpoint that takes the Polly policy by DI -
|
|
Start the application, and hit http://localhost:5000/catalog/1
. You will see console statements showing the retries.
That’s it, not too difficult.
Download full source code.