我正在使用.net WEB API构建REST API。
以下是示例代码
public class ValuesController : ApiController
{
// GET api/values
public Values Get(int ID, int userID)
{
return new Values(){};
}
}
现在我要做的是,如果userID不在允许的用户ID列表中,则返回另一个类。我在考虑抛出一个例外,但在我考虑之后,我认为这不是一个好主意。原因是该过程是以OK状态处理的。
基本上我想返回一个自定义的ErrorMessage对象而不是Values对象。有可能吗?
答案 0 :(得分:1)
当您的代码流遇到异常情况时,IMO抛出异常是有效的。
如果您仍然不想抛出,可以创建一个描述结果的包装类:
public class ValueResponse
{
public HttpStatusCode HttpStatus { get; set; }
public string ErrorMessage { get; set; }
public Values Values { get; set; }
}
并返回该对象
public class ValuesController : ApiController
{
// GET api/values
public ValueResponse Get(int ID, int userID)
{
// Send a valid response or an invalid with the proper status code
}
}