Как вернуть ответ 400, используя тот же формат, который использует проверка Asp.Net Core? - PullRequest
0 голосов
/ 11 декабря 2019

Я использую проверку модели в Asp.Net Core, и она возвращает 400 таких ошибок:

{
    "errors": {
        "MyProperty": [
            "Error 1",
            "Error 2"
        ]
    },
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "0HLRTF1TPCO60:00000002"
}

У меня есть пользовательская проверка, которая не использует встроенные механизмы ядра Asp.Net, но яХотелось бы сгенерировать ошибку в точно таком же формате, чтобы пользователям было проще ее использовать. Конечно, я могу сам сгенерировать JSON, но я думаю, что есть некоторый встроенный API для генерации такой ошибки из модели, хотя мне не удается найти то, что я должен вызвать.

PS Я хочу сделать этов промежуточном программном обеспечении

1 Ответ

0 голосов
/ 11 декабря 2019

Я сам понял, как этого можно достичь:

var modelState = new ModelStateDictionary();
modelState.AddModelError("FieldName", "ErrorMessage");
var details = new ValidationProblemDetails(modelState);
details.Status = (int?) HttpStatusCode.BadRequest;
details.Extensions["traceId"] = context.TraceIdentifier;

Детали могут быть впоследствии преобразованы в JSON.

...