DJT.Vertical
8.3.2
dotnet add package DJT.Vertical --version 8.3.2
NuGet\Install-Package DJT.Vertical -Version 8.3.2
<PackageReference Include="DJT.Vertical" Version="8.3.2" />
paket add DJT.Vertical --version 8.3.2
#r "nuget: DJT.Vertical, 8.3.2"
// Install DJT.Vertical as a Cake Addin #addin nuget:?package=DJT.Vertical&version=8.3.2 // Install DJT.Vertical as a Cake Tool #tool nuget:?package=DJT.Vertical&version=8.3.2
DJT.Vertical
Vertical Slice architecture for Web APIs is an alternative to using controllers.
Using components
In your web application, include using DJT.Vertical.Http
and call the following:
builder.Services.AddVerticalComponents();
var app = builder.Build();
app.UseVerticalComponents();
Service Attributes
Include the DJT.Vertical.Attributes
namespace and start registering your dependency injected classes
using the lifetime-named attributes. Each attribute also allows an optional key to be defined, therefore registering
the class as a keyed service. For example:
[SingletonService(ImplementsType = typeof(IMyInterface),Key = "for_science")]
public class MySingletonService : IMyInterface
{
public void DoSomething()
{
}
}
[ScopedService]
public class MyScopedService ([FromKeyedServices("for_science")] IMyInterface singleton)
{
public void DoSomethingElse()
{
singleton.DoSomething();
}
}
Similarly, there is also a [TransientService]
attribute.
Note: It is the assembly which calls directly
AddVerticalComponents()
which will be scanned for these attributes.
Request Handlers
Use the IRequestHandler<>
interfaces to define the functionality of the API, using dependency injection
for dependencies. I.e.
public class GetEmployeesHandler(MyDbContext db) : IRequestHandler<IEnumerably<Employees>>
{
public IEnumerable<Employees> Execute()
{
return db.Employees.ToList();
}
}
Async
Included in v8.1 are abstract classes for AsyncRequestHandler<>
which require a cancellation token and
obligate the return value wrapped in a Task<TRes>
.
Exceptions
To return erroneous responses, use the included Exception
s, such as BadRequestException
for a HTTP 400
response.
Custom response codes can be supplied using CustomStatusException
.
Auth Service
A simple auth service for getting user claim information is included.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.