4

我有简单的服务堆栈 Web 服务,它以名称作为输入参数。从这个线程中,我了解到使用新 API 时不再需要 ResponseStatus 属性。但是,当我尝试使用 fiddler 编写没有名称的请求时,它按预期返回 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;}
}
4

1 回答 1

3

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

您的代码库中还有 CustomerResponse 类吗?如果是这样,请尝试将其注释掉或删除它。即使您object在发生异常时返回,ServiceStack 仍将查找传统命名的 Response 类型(请参见此处)并尝试填充 ResponseStatus 属性。

于 2013-03-21T04:41:31.017 回答