Язык: C#,. Net Core 3.1
Привет всем,
У меня есть конфигурация API, которая до сих пор работала нормально с большинством распространенных состояний HTTP коды: неверный запрос, неавторизованный, успешный и т. д. c.
Я реализовал новый код ответа как часть изменения в некоторой логике c, чтобы ввести некоторое регулирование запросов при вызове API. В случае слишком большого количества запросов я хочу вернуть вызывающему клиенту код состояния 429.
Я реализовал это в коде и снабдил контроллер следующим (комментарии удаляются, чтобы не показывать логическая работа метода):
/// <response code="200">Returns a 200 ....</response>
/// <response code="400">Returns 400 ...</response>
/// <response code="500">Returns 500 ...</response>
/// <response code="424">Returns a 424 ...</response>
/// <response code="429">Returns a 429 response in the event of too many requests</response>
[HttpPost("request")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status500InternalServerError)]
[ProducesResponseType(StatusCodes.Status424FailedDependency)]
[ProducesResponseType(StatusCodes.Status429TooManyRequests)]
Логи c, к счастью, работает как положено и возвращает код ответа 429, однако в интерфейсе Swagger я получаю следующую ошибку:
В коде у моего контроллера есть тип возврата ActionResult и в логе c, который делает возврат, я попробовал следующее:
case ApplicationServices.Enum.OtpStatusEnum.Failure:
return StatusCode(424);
case ApplicationServices.Enum.OtpStatusEnum.Blocked:
return Unauthorized();
case ApplicationServices.Enum.OtpStatusEnum.TooManyRequests:
// return StatusCode(429);
var result = new StatusCodeResult(429)
return result;
default:
return StatusCode(500);
Ни то, ни другое эти два варианта дают ожидаемый результат, поэтому мой вопрос: является ли это проблемой, когда Swashbuckle неправильно реализовал поддержку кода ответа 429, и есть ли что-то, что я могу сделать, чтобы добавить это, чтобы гарантировать, что этот стандартный код поддерживается правильно