1.5 KiB
1.5 KiB
E-Commerce Example: HTTP API
Expose commands and queries via HTTP endpoints.
HTTP Endpoint Setup
var builder = WebApplication.CreateBuilder(args);
// Register CQRS
builder.Services.AddSvrntyCQRS();
builder.Services.AddDefaultCommandDiscovery();
builder.Services.AddDefaultQueryDiscovery();
// Register commands and queries
builder.Services.AddCommand<PlaceOrderCommand, string, PlaceOrderCommandHandler>();
builder.Services.AddCommand<CancelOrderCommand, CancelOrderCommandHandler>();
builder.Services.AddQuery<GetOrderQuery, OrderDto, GetOrderQueryHandler>();
builder.Services.AddQuery<ListOrdersQuery, PagedResult<OrderSummaryDto>, ListOrdersQueryHandler>();
// Add Swagger
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Map HTTP endpoints
app.MapSvrntyCommands();
app.MapSvrntyQueries();
// Enable Swagger
app.UseSwagger();
app.UseSwaggerUI();
app.Run();
API Endpoints
Place Order
POST /api/command/placeOrder
Content-Type: application/json
{
"customerId": "customer-123",
"lines": [
{
"productId": "product-456",
"quantity": 2
}
],
"shippingAddress": "123 Main St"
}
Get Order
GET /api/query/getOrder?orderId=order-789
List Orders
GET /api/query/listOrders?customerId=customer-123&status=Placed&page=1&pageSize=20
See Also
- 08-grpc-api.md - gRPC API
- HTTP Integration