The Transformation: 70-90% Less Code
See how REslava.Result eliminates boilerplate in real .NET 10 applications:
2.5.1. β BEFORE: Traditional Minimal API
// Manual error handling, validation, and HTTP responses
app.MapPost("/users", async (CreateUserRequest request, IUserService service) =>
{
// Manual validation
if (string.IsNullOrWhiteSpace(request.Email))
return Results.BadRequest(new { error = "Email required" });
if (!IsValidEmail(request.Email))
return Results.BadRequest(new { error = "Invalid email" });
// Manual duplicate checking
if (await EmailExistsAsync(request.Email))
return Results.Conflict(new { error = "Email already exists" });
try
{
var user = await service.CreateUserAsync(request);
return Results.Created($"/users/{user.Id}", user);
}
catch (ValidationException ex)
{
return Results.BadRequest(new { errors = ex.Errors });
}
catch (Exception ex)
{
return Results.Problem("Internal server error");
}
});
2.5.2. β AFTER: REslava.Result Magic
// Clean, declarative, type-safe - 3 lines instead of 25+
app.MapPost("/users", async (CreateUserRequest request) =>
await CreateUser(request));
// Service layer handles everything elegantly
public async Task<Result<User>> CreateUser(CreateUserRequest request) =>
await Result<CreateUserRequest>.Ok(request)
.Ensure(r => !string.IsNullOrWhiteSpace(r.Email), "Email required")
.Ensure(r => IsValidEmail(r.Email), "Invalid email format")
.EnsureAsync(async r => !await EmailExistsAsync(r.Email), "Email already exists")
.BindAsync(async r => await _userService.CreateUserAsync(r))
.WithSuccess("User created successfully");
π Result: 70-90% less code, 100% type-safe, automatic HTTP responses, rich error context!