public static class OrderEndpointsV1{ public static RouteGroupBuilder MapOrderEndpointsV1(this RouteGroupBuilder group) { group.MapGet("/{id:guid}", GetOrderV1); group.MapPost("/", CreateOrderV1); return group; }
private static async Task<Results<Ok<OrderResponseV1>, NotFound>> GetOrderV1( Guid id, ISender sender, CancellationToken ct) { // V1 response shape var result = await sender.Send(new GetOrder.Query(id), ct); return result.IsSuccess ? TypedResults.Ok(result.Value.ToV1()) : TypedResults.NotFound(); }}
public static class OrderEndpointsV2{ public static RouteGroupBuilder MapOrderEndpointsV2(this RouteGroupBuilder group) { group.MapGet("/{id:guid}", GetOrderV2); group.MapPost("/", CreateOrderV2); return group; }
private static async Task<Results<Ok<OrderResponseV2>, NotFound>> GetOrderV2( Guid id, ISender sender, CancellationToken ct) { // V2 response shape — includes new fields var result = await sender.Send(new GetOrder.Query(id), ct); return result.IsSuccess ? TypedResults.Ok(result.Value.ToV2()) : TypedResults.NotFound(); }}