Я разрабатываю совершенно новый REST API с помощью ASP.NET Web API. Исходя из фона WCF, я чувствую себя привлекательным для создания "контрактов ошибок" для моего API.
В этом случае я не говорю о необработанных исключениях, возвращаемых клиенту. Вместо этого я фокусируюсь на таких ошибках, как API, которые неправильно используются клиентом, особенно тех, где клиент может автоматически создавать эти ошибки и повторно отправлять запросы.
В большинстве примеров, которые я нашел, есть строка, возвращаемая, как правило, путем исключения исключения HttpResponseException или, по крайней мере, для того, чтобы сделать процесс создания информационной строки ошибки более автоматизированной: Вернуть пользовательские объекты ошибок в веб-API
Я подумываю о создании исключения HttpResponseException, передавая HttpResponseMessage, чей контент настроен на мой конкретный тип контракта.
Мой API также сильно использует автоматическую проверку модели, и эти ошибки проверки модели возвращаются как совершенно другая структура.
Так что я должен заставить свои "ошибки" в том же формате, что и ответы на проверку модели? Каковы лучшие практики здесь?
Наконец, мой API откроет параметры форматирования json, xml и буферов протокола. В результате мне действительно нужно убедиться, что моя стратегия не зависит от форматера.