Tapir- сгенерированный документ swagger не показывает множественные ошибки с одинаковым статусом ошибки

Я использую Tapir для определения своего интерфейса API, а также для создания документа swagger open api. Однако я столкнулся с этой проблемой

Я определил свои классы ошибок как

sealed abstract class SError extends Product with Serializable
object SError {
  final case class Error1(error: String) extends SError
  final case class Error2(error: String) extends SError
  final case class Error3(error: String) extends SError

}

У меня есть несколько ошибок при отображении, т.е.

EndpointOutput.OneOf[SError] = 
    oneOf(
      statusMapping(StatusCodes.InternalServerError, jsonBody[Error1].description("Internal server error1.")),
      statusMapping(StatusCodes.InternalServerError, jsonBody[Error2].description("Internal server error2.")),
      statusMapping(StatusCodes.NotFound, jsonBody[Error3].description("Not found")),
    )

Когда я создаю документ swagger, в моем сгенерированном документе я получаю только одно описание InternalServerError, а не два, как ожидалось, т.е. описание для Error2, а не для Error1. Я предполагаю, что для одного и того же кода состояния всегда требуется отображение последней ошибки.

Есть ли способ получить два разных описания сгенерированного документа?

0 ответов

Другие вопросы по тегам