Возвращать меньше информации для JSON ошибок парсера - PullRequest
0 голосов
/ 08 мая 2020

Используя asp. net core 3.1 для веб-api, моя проблема в том, что когда приходит запрос с некоторыми недопустимыми параметрами, структура выдает сообщение об ошибке, которое я не хочу возвращать в ответ.

{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "|968ad6dd-4488d8bc10ec5760.",
    "errors": {
        "$.value": [
            "The JSON value could not be converted to System.String. Path: $.value | LineNumber: 1 | BytePositionInLine: 15."
        ]
    }
}

Можно ли изменить этот ответ на ошибку на что-нибудь другое? В идеале я бы хотел уменьшить многословие и не возвращать сообщение об ошибке («Значение JSON не может быть преобразовано в System.String»).

app.UseExceptionHandler делает не работает. ExceptionMiddleware не работает, потому что await _next (httpContext); не генерирует исключение.

Заранее спасибо.

1 Ответ

0 голосов
/ 11 мая 2020

Кажется, что один из возможных способов - поиграть с этим: https://github.com/dotnet/aspnetcore/blob/5ff9ed68d1cf6c89d72d27a69b00ed0ecd34daed/src/Mvc/Mvc.Core/src/Infrastructure/ModelStateInvalidFilter.cs

Либо установите _apiBehaviorOptions.SuppressModelStateInvalidFilter, либо создайте собственный InvalidModelStateResponseFactory. Еще не пробовал, но похоже на потенциальное решение.

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