【发布时间】:2018-01-12 17:58:46
【问题描述】:
我们正在编写一个从电子表格导入数据的 api。我们有一个使用自动批处理功能的创建端点,因为我们希望从 UI 进行一次调用,而不是每行一次调用。我们希望我们不必为 BulkCreate 实现特定的端点和验证器,并且可以使用服务堆栈的 AutoBatch 功能。我们遇到了一个问题,如果一个请求验证失败,它将停止运行其余请求并将异常返回给客户端。有没有办法配置或解决这个功能?我们理想的场景是我们可以发送请求数组并取回响应数组,其中包含成功的响应或填充的 ResponseStatus 而不会在客户端中变成异常,而无需自定义编写整个切片而不使用自动批处理。
[Route("/items/")]
public class CreateItem : IReturn<CreateItemResponse>
{
public Item Item {get;set;}
}
public class CreateItemResponse : IHasResponseStatus
{
public int ItemId {get;set;}
public ResponseStatus ResponseStatus {get;set;}
}
说明性,嵌套规则将位于它们自己的验证器中,该验证器设置为子级
public class CreateItemValidator: AbstractValidator<CreateItem>
{
public CreateItemValidator()
{
RuleFor(request => request.Item.PropA)
.Must(someRuleThatFailsSometimes);
}
}
服务
public class ItemService : Service
{
public CreateItemResponse Any(CreateItem request)
{
CreateItem(request);
}
}
【问题讨论】:
标签: servicestack