Вот моя проблема, я разрабатываю REST API в ядре Asp.Net, которое используется некоторыми разработчиками. Решение - это настройка для автоматической генерации документации на swagger, что делает тестирование API довольно быстрым и легким. Некоторые из методов POST получают огромные объекты json через тело запроса, и как только одно из свойств генерирует ошибку сериализации (например, помещая строку в целочисленное поле), модель, полученная в моем контроллере, становится нулевой. Затем разработчики теряют некоторое время, чтобы выяснить, в какой области происходит сбой сериализации. Я хотел бы иметь возможность не только отлавливать эти ошибки, но и возвращать разработчикам явное сообщение, чтобы указать поле, вызывающее ошибку. Я могу поймать ошибку, сделав это в Startup.cs
file
services.AddMvc()
.AddJsonOptions(options =>
{
options.SerializerSettings.Error = (sender, args) =>
{
};
});
на данный момент у меня есть подробности ошибки сериализации. Я мог бы зарегистрировать ошибку, но я хотел бы вернуть 400 с явным сообщением. Я попытался запутать некоторые вещи, такие как следующие, чтобы получить ответ http, но не смог этого достичь.
var provider = services.BuildServiceProvider();
var http = (IHttpContextAccessor)provider.GetService(typeof(IHttpContextAccessor));
var response = http.HttpContext.Response;