我被困在一个地方,我正在使用 scala、tap 和 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"
我无法更改错误结构。有没有办法使用自定义编解码器来包装此错误以获取所需的结果。