Вот Web-API возвращает некое значение или вообще пустой ответ.
Можно сделать так:
1. Вернуть только само значение либо пустой ответ. А при возникновении исключения -- вернуть совсем другой ответ, с другой структурой, в котором будет тип исключения и доп. информация.
2. Обернуть в пакет так, чтобы всегда присутствовала информация о статусе выполнения. Ну, типа сделаете так:
Здравствуйте, Shmj, Вы писали: S>Какой бы вы вариант предпочли?
Использовать стандартные средства
1) 200 ответ:
Ok(result);
2) Unhandled Exception:
Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "An unexpected error.", ex); // В этом случае в зависимости от параметров в web.config будет присутствовать (или нет) тип исключения, стек трейс и т.д.
Здравствуйте, Shmj, Вы писали:
S>Какой бы вы вариант предпочли?
Обычно в результате возвращаю HTTP код + код в json — для большей совметимости,
удобности исспользованаия браузерами и третьими клиентами.
В коде бросаю кастомное исключение и перехватываю его в классе реализующем ExceptionFilterAttribute
и добавляю соответстующие HTTP CODE и {"code":..}
если успех (HTTP 200):
{"code":0}
{"code":0,"id":100500,"name":"xxx"}
если серверная ошибка(пользователю незачем знать почему произошла ошибка):
{"code":500}
если ошибка авторизации:
{"code":401}
типичная ошибка, при добавлении пользовательских данных:
{"code":400,"errors":[{"name":"color","message":"'color' should not be empty."},{"name":"color","message":"'color' must be between 1 and 128 characters. You entered 0 characters."}]}
Підтримати Україну у боротьбі з країною-терористом.