Easy.Endpoints
1.1.0
See the version list below for details.
dotnet add package Easy.Endpoints --version 1.1.0
NuGet\Install-Package Easy.Endpoints -Version 1.1.0
<PackageReference Include="Easy.Endpoints" Version="1.1.0" />
<PackageVersion Include="Easy.Endpoints" Version="1.1.0" />
<PackageReference Include="Easy.Endpoints" />
paket add Easy.Endpoints --version 1.1.0
#r "nuget: Easy.Endpoints, 1.1.0"
#:package Easy.Endpoints@1.1.0
#addin nuget:?package=Easy.Endpoints&version=1.1.0
#tool nuget:?package=Easy.Endpoints&version=1.1.0
Easy.Endpoints
Aspnetcore endpoints without the controller
Setup
Add Easy.Endpoint services
services.AddRequestEndpoints();
Add Easy.Endpoint to the application builder
app.UseEndpoints(endpoints =>
{
endpoints.AddEasyEndpoints();
});
And it will grab all implementations of IEndpoint and IEndpointHandler and build routes for them.
Sample
Simple endpoint that will be grouped in swagger under Greetings
[EndpointController("Greetings")]
public class HelloWorldEndpoint : IEndpoint
{
public Task HandleRequest(EndpointContext httpContext)
{
httpContext.Response.WriteAsync("Hello World");
return Task.CompletedTask;
}
}
GET: /Book Returns a list of books in json format
public class GetBookEndpointHandler : IJsonResponseEndpointHandler<Book[]>
{
public Task<Book[]> Handle() => Task.FromResult(Array.Empty<Book>());
}
POST: /Book Accepts a Book in the body as Json and returns a Command Result
public class PostBookEndpointHandler : IJsonEndpointHandler<Book, CommandResult>
{
public PostBookEndpointHandler()
{
}
public Task<CommandResult> Handle(Book body)
{
return Task.FromResult(new CommandResult { Successful = true, Message = "Yay!" });
}
}
POST: /TestOne Alternatively can declare route and Method
[Post("TestOne")]
public class PostTestResponseEndpoint : IJsonBodyEndpointHandler<TestResponsePayload>
{
public Task Handle(TestResponsePayload body)
{
return Task.CompletedTask;
}
}
Generic handler
Can declare generic handlers that can build routes for types
POST: /Animal/Cow
POST: /Animal/Dog
[EndpointController("Animal")]
[KnownTypes("Cow", typeof(Cow))]
[KnownTypes("Dog", typeof(Dog))]
[Post("[controller]/[type]")]
public class AnimalEndpointHandler<TAnimal> : IJsonEndpointHandler<TAnimal, string> where TAnimal : IAnimal
{
public Task<string> Handle(TAnimal body, CancellationToken cancellationToken)
{
return Task.FromResult(body.Says());
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net5.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.