Я использовал подобные примеры для создания контроллера API самообслуживания. Он может HttpPost
и HttpGet
Customer
объект.
(Упрощенная) функция для получения Customer
по идентификатору:
[RoutePrefix("test")]
public class MyTestController : ApiController
{
[Route("getcustomer")]
[HttpGet]
public Customer GetCustomer(int customerId)
{ // as a test: react as if this customer exists:
return new Customer()
{
Id = customerId,
Name = "John Doe",
};
}
...
}
Это прекрасно работает. На моей стороне клиента я могу запросить у этого тестового сервера клиента по идентификатору, и я получаю клиента с ожидаемыми данными.
Очевидно, вызывающая функция знает, как обернуть моего возвращенного клиента в объект (HttpResponseMessage
?), который можно передать моему клиенту.
Следующий шаг: вернуть ошибку 404, если клиент не найден.
[Route("getcustomer")]
[HttpGet]
public Customer GetCustomer(int customerId)
{ // as a test: only customer 1 exists
if (customerId == 1)
{
return new Customer()
{
Id = customerId,
Name = "John Doe",
};
}
else
{
// TODO: make sure 404 Err not found returned.
}
}
Как это сделать? Выбросить исключение? Вызвать одну из функций WebApi, чтобы сообщить, что ошибка 404 должна быть возвращена вместо моего возвращенного клиента?