. Net Core Web API: как вернуть сообщение проверки из метода API? - PullRequest
0 голосов
/ 22 апреля 2020

Я использую React Js на стороне клиента и. Net Core 3.0 Web API на стороне сервера. У меня есть один метод API под названием CreateAccount, и тип возвращаемого значения - IActionResult. Теперь, если я проверяю какое-либо из свойств модели, мне нужно отправить или вернуть сообщение проверки вместе с пустыми данными модели. Я новичок в API и попытался, как показано ниже, но не смог отправить строку в качестве типа результата.

Метод API,

[AllowAnonymous]
[HttpPost("createaccount")]
public async Task<IActionResult> CreateAccount([FromBody]Users user)
{
        try
        {
            if (ModelState.IsValid)
            {
                if (user == null)
                    return BadRequest(new { message = "Data is empty" });

                if(user.UserType!="Admin")
                {
                    return new ValidationResult("Only Admin can create new account");
                }
                return Ok(await _userService.CreateAnUserAccount(user));
            }
        }
        catch(Exception e)
        {
            throw new ArgumentException(e.Message);
        }

        return ValidationProblem();
}

Я не знаю правильного. Net Базовая часть программирования API, кто-нибудь может помочь мне решить эту проблему?

1 Ответ

1 голос
/ 22 апреля 2020

Вы можете вернуть ObjectResult с StatusCode отличным от StatusCodes.Status200OK и сериализованным объектом, который содержит любую информацию, которую вы хотите вернуть клиенту, например:

return new ObjectResult(new YourApiError() { Message = "message.." })
{ 
     StatusCode = StatusCodes.Status405MethodNotAllowed 
};
...