我有一个简单的服务堆栈web服务,它将名称作为输入参数。从this thread中,我了解到在使用新的接口时不再需要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;}
}
发布于 2013-03-21 04:41:31
您应该不需要使用新的API添加ResponseStaus。根据penfold的示例,您应该获得{"ResponseStatus":{"ErrorCode":"ArgumentException","Message":"Name is required","Errors":[]}}
作为响应。
你的代码库中还有CustomerResponse类吗?如果是这样,尝试将其注释掉或将其删除。即使在发生异常时返回object
,ServiceStack仍然会查找常规命名的响应类型(请参见here),并尝试填充ResponseStatus属性。
https://stackoverflow.com/questions/15514998
复制