| name | arbiter-endpoints |
| description | Use when exposing Arbiter commands and queries as REST via Minimal APIs — AddEndpointRoutes, MapEndpointRoutes, EntityCommandEndpointBase, EntityQueryEndpointBase, IEndpointRoute. Trigger on Minimal API endpoint registration for CRUD entities. |
Arbiter.CommandQuery.Endpoints
Minimal API surface that exposes the generic Arbiter.CommandQuery commands and queries as REST endpoints automatically. Each entity gets GET /{prefix}/{name}/{id}, GET /{prefix}/{name} (paged), POST, PUT, PATCH, DELETE with no per-route boilerplate.
Install
dotnet add package Arbiter.CommandQuery.Endpoints
Register
using Arbiter.CommandQuery.Endpoints;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddCommandQuery();
builder.Services.AddEndpointRoutes();
builder.Services.AddSingleton<IEndpointRoute, ProductEndpoint>();
var app = builder.Build();
app.MapEndpointRoutes();
app.Run();
MapEndpointRoutes(prefix = "/api", serviceKey = null) returns an IEndpointConventionBuilder, so chain .RequireAuthorization(), .WithOpenApi(), etc.
Canonical pattern — one endpoint class per entity
public class ProductEndpoint
: EntityCommandEndpointBase<int, ProductReadModel, ProductReadModel, ProductCreateModel, ProductUpdateModel>
{
public ProductEndpoint(ILoggerFactory loggerFactory)
: base(loggerFactory, entityName: "Product") { }
}
That single class registers all of:
GET /api/Product/{id}
GET /api/Product
POST /api/Product
PUT /api/Product/{id}
PATCH /api/Product/{id}
DELETE /api/Product/{id}
If you only need queries, derive from EntityQueryEndpointBase<TKey, TListModel, TReadModel> instead.
Variations
public class CategoryEndpoint : EntityQueryEndpointBase<int, CategoryReadModel, CategoryReadModel>
{
public CategoryEndpoint(ILoggerFactory l) : base(l, "Category") { }
}
protected override void MapEndpoints(IEndpointRouteBuilder app)
{
base.MapEndpoints(app);
app.MapPost($"/{EntityName}/import", ImportProducts).WithName("ImportProducts");
}
app.MapEndpointRoutes().RequireAuthorization();
Reference