Я застрял в каком-то месте, я использую scala, тапир и Circe.
sealed abstract class S1Error extends Product with Serializable
object S1Error {
final case class SError(error: SMError) extends S1Error
}
sealed abstract class SMError(message: String)
object SMError {
final case class SVError(message: String) extends SMError(message)
}
При ошибке тапира, я использую это
val schemaVersionError: EndpointOutput.StatusMapping[SError] = statusMappingValueMatcher(
StatusCode.BadRequest,
jsonBody[SError]
.description("XXXX.")
) {
case SMError(SVError(_)) => true
case _ => false
}
Теперь из-за этого структура, результат API, который я получаю, является
{
"error": {
"SVError": {
"message": "XXXXG"
}
}
}
, где в идеале я хотел бы получить ответ, как
"message": "XXXXG"
Я не могу изменить структуру ошибки. Есть ли способ обернуть эту ошибку, используя пользовательский код c, чтобы получить требуемый результат.