Как отправить сообщение и статус по результату WebApi Core? - PullRequest
0 голосов
/ 29 марта 2020

Я хочу вернуть код сообщения и состояния в WebAPI Core 3.1 . Например, служба GetAllUsers () возвращает AllUser, а код возврата - OK(Users). все в порядке.

Но если GetAllUsers () вернет ноль (пользователь не фонд), то служба вернет 204 код состояния . 204 Код Нет тела. Как отправить сообщение по 204? Если мне нужно использовать 404 вместо 204. Так в чем же причина 204?

Другая проблема:

В 500 statusCode у нас получится следующее:

  {
    "type": "https://tools.ietf.org/html/rfc7231#section-6.6.1",
    "title": "An error occured while processing your request.",
    "status": 500,
    "detail": "Error",
    "traceId": "|b8dbff20-4a070d9818356f4c."
  }

А для других кодов по-другому. Есть ли способ создать класс для всех кодов и иметь один выход? Мне нужен этот класс для Android программистов. Мне просто нужно сообщение, которое может быть списком JSON, и у меня есть статус. Раньше мы делали это с Джейсоном, но теперь у всех есть комментарий.

1 Ответ

0 голосов
/ 29 марта 2020

Если вы все еще хотите отправить сообщение со статусом 200, даже если результат пуст, вы можете попробовать это:

var result = GetAllUsers();
if(!result) return Ok("no available users");
else {
return Ok(result);
}

Если вы все еще хотите отправить код состояния 200 с пустым телом, вы можно попробовать это:

var result = GetAllUsers();
if(!result) return Ok(); // will return an empty body with a 200 code
else {
return Ok(result);
}

...