Я создаю REST API с использованием.net WEB API.
Вот пример кода
public class ValuesController : ApiController
{
// GET api/values
public Values Get(int ID, int userID)
{
return new Values(){};
}
}
Теперь то, что я хочу сделать, это вернуть другой класс, если идентификатор пользователя не включен в список userID. Я думал об исключении, но после того, как я это рассмотрел, я не думаю, что это была бы хорошая идея. Причина этого заключается в том, что процесс обрабатывался с статусом ОК.
В основном я хотел бы вернуть собственный объект ErrorMessage вместо объекта Values. Можно ли это сделать?
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
}
}