Как вернуть только сообщения об ошибках в пользовательской модели ответа в С#C#

Место общения программистов C#
Anonymous
Как вернуть только сообщения об ошибках в пользовательской модели ответа в С#

Сообщение Anonymous »

Я настроил валидатор Fluent в своем проекте веб-API, и проверки работают нормально. Но я хочу создать одну общую структуру ответа для каждого API. Если плавная проверка не удалась, я получаю ответ в структуре ответа BadRequest, как показано ниже.

Код: Выделить всё

{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-f3b3363d741fe7416fe40aea0ff13c36-d08e5eefbc2ff0ea-00",
"errors": {
"Code": [
"'Code' must not be empty."
],
"Name": [
"'Name' must not be empty."
]
}
}
И код моего домена такой, как показано ниже

Код: Выделить всё

public class AddRegionRequestValidator : AbstractValidator
{
public AddRegionRequestValidator()
{
RuleFor(r=>r.Code).NotEmpty().NotNull().WithMessage("{property} is required");
RuleFor(r=>r.Name).NotEmpty().NotNull().WithMessage("{property} is required");
}
}
теперь я хочу создать одну общую структуру ответа для каждого API, где я могу возвращать флаг isSuccessful, данные (если они есть), список ошибок и сообщение.

Код: Выделить всё

public class Response{
public bool IsSuccessful{get;set;}
public dynamic Data{get;set;}
public List ErrorList{get;set;}
public string Message{get;set;}
}
но мне нужна помощь, чтобы узнать, как я могу получать только ошибки из структуры неверного запроса при беглой проверке и создавать собственный ответ, например класс «Ответ».
Я хочу получить ответ, как показано ниже.

Код: Выделить всё

{
isSuccessful:false,
data:null,
errorList:[
"'Code' must not be empty.",
"'Name' must not be empty."
],
message:null
}
Я пытался прочитать сообщение об ошибке только для чтения и добавить его в коллекцию, но мне это не удалось, и я не знаю, как создать общую структуру ответа и передать подробный список сообщений об ошибках быстрой проверки в общей структуре ответа. .

Подробнее здесь: https://stackoverflow.com/questions/753 ... in-c-sharp

Вернуться в «C#»