.Net стандарт / базовая версия system.web.http.HttpError - PullRequest
0 голосов
/ 06 декабря 2018

При переносе формы .net Framework в .net Standard / Core я наткнулся на класс HttpError.Я не могу найти никакого эквивалента в ядре / стандарте .net, кроме Compatability Shim, который является лишь временным решением.

Знаете ли вы, если есть официальная замена для него?Возможно, API изменился, и вместо HttpError появилась новая лучшая практика.

Спасибо!

1 Ответ

0 голосов
/ 07 декабря 2018

Объект HttpError предоставляет согласованный способ возврата информации об ошибке в теле ответа.В базовом веб-API asp.net вы можете определить базовый класс ApiResponse, например:

public class ApiResponse
{
    public int StatusCode { get; }

    [JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
    public string Message { get; }

    public ApiResponse(int statusCode, string message = null)
    {
        StatusCode = statusCode;
        Message = message ?? GetDefaultMessageForStatusCode(statusCode);
    }

    private static string GetDefaultMessageForStatusCode(int statusCode)
    {
        switch (statusCode)
        {
            ...
            case 404:
                return "Resource not found";
            case 500:
                return "An unhandled error occurred";
            default:
                return null;
        }
    }
}

Вы также можете получить этот класс для определения более конкретных предопределенных типов ошибок, см. this и эта статья для получения более подробной информации и примера кода.

Редактировать:

Начиная с версии 2.1, добавлена ​​поддержка RFC 7807 - Сведения о проблеме для HTTP API как стандартизированный формат для возврата машиночитаемых сообщений об ошибках от HTTP API:

Ссылка: https://blogs.msdn.microsoft.com/webdev/2018/02/27/asp-net-core-2-1-web-apis/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...