ServiceStack新API中的错误处理

时间:2013-03-20 03:55:54

标签: exception-handling error-handling servicestack

我有简单的服务堆栈Web服务,它将Name作为输入参数。从this thread开始,我了解使用新API时不再需要ResponseStatus属性。但是当我尝试使用fiddler编写一个没有Name的请求时,它会按预期返回400响应代码,但不包含任何有关异常的信息。因此,新的API是否提供了开箱即用的错误描述,特别是对于非.NET客户端。如果没有,是否有可能提供此信息。

public object Any(CustomerRequest request)
{
   if (request.Name == null)
   {
     throw new ArgumentException("Name is required");
   }

   var objCustomer = //get customer from DB

   return objCustomer;
}

public class CustomerRequest
{
   public string Name {get;set;}
   public bool IsActive {get;set;}
}

1 个答案:

答案 0 :(得分:3)

您不需要使用新API添加ResponseStaus。根据penfold的示例,您应该获得{"ResponseStatus":{"ErrorCode":"ArgumentException","Message":"Name is required","Errors":[]}}作为回复。

您的代码库中是否还有CustomerResponse类?如果是这样,请尝试将其评论或删除。即使在发生异常时返回object,ServiceStack仍会查找常规命名的响应类型(请参阅here)并尝试填充ResponseStatus属性。