我有简单的服务堆栈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;}
}
答案 0 :(得分:3)
您不需要使用新API添加ResponseStaus。根据penfold的示例,您应该获得{"ResponseStatus":{"ErrorCode":"ArgumentException","Message":"Name is required","Errors":[]}}
作为回复。
您的代码库中是否还有CustomerResponse类?如果是这样,请尝试将其评论或删除。即使在发生异常时返回object
,ServiceStack仍会查找常规命名的响应类型(请参阅here)并尝试填充ResponseStatus属性。