Ответ JSON из формата регистрации личности - PullRequest
0 голосов
/ 11 ноября 2019

Я добавил свободную проверку в проект WebApi, который работает нормально, я получаю следующий JSON-ответ в качестве примера регистрации пользователя:

{
    "errors": {
        "Email": [
            "'Email' is not a valid email address."
        ],
        "Password": [
            "'Password' must contain at least one uppercase, lowercase, number and symbol"
        ]
    },
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "8000003d-0000-fc00-b63f-84710c7967bb"
}

Я добавляю проверку, если электронная почта пользователя уже существует,Формат ответа об ошибке очень отличается, мне нужен тот же формат, чтобы перехватить ошибку на стороне клиента.

Класс модели ошибки:

  public class ErrorResponse
  {
     public List<ErrorModel> Errors { get; set; } = new List<ErrorModel>();
  }
  public class ErrorModel
  {
     public string FieldName { get; set; }
     public string Message { get; set; }
  }

Регистр контроллера:

   var authResponse = await _identityService.RegisterAsync(request);

        if (!authResponse.Success)
        {
            var errorResponse = new ErrorResponse();

            var errorModel = new ErrorModel
            {
                FieldName = "User",
                Message = "A user exists"
            };

            errorResponse.Errors.Add(errorModel);


            return BadRequest(errorResponse);

        }

JSON-ответ:

{
    "errors": [
        {
            "fieldName": "User",
            "message": "A user exists"
        }
    ]
}

1 Ответ

2 голосов
/ 11 ноября 2019

Вы можете использовать словарь для этого:

 public class ErrorResponse
  {
     public Dictionary<string,List<string>> Errors { get; set; } = new Dictionary<string,List<string>>();
  }

И добавить значения, как это:

errorResponse.Add("User",new List<string>{"A user exists"});
...