问题描述
所以我有这个简单的 post 端点,应该在那里进行一些解组
post {
path("/emails") {
import package.model.impl.RegularEmailJsonSupport._
entity(as[RegularEmail]) { regularEmail =>
storeInboundEmails(regularEmail).runDB.attempt.unsafeRunSync()
}
}
这是与 json 协议格式一起的模型类,我不太相信它对 EmailStatus 字段是否正确
case class RegularEmail(
id: BigInt,timestamp: DateTime,senderEmailAddress: String,originalRecipientsAddresses: List[String],cc: List[String],subject: String,content: JsValue,customerNumber: Int,status: EmailStatus = EmailStatus.UNREAD,originalSenderEmailAddress: String,hasAttachments: Boolean = false
//Metadata: Option[EmailMetadata]
) extends Email(
id = id,timestamp = timestamp,senderEmailAddress = senderEmailAddress,originalRecipientsAddresses = originalRecipientsAddresses,cc = cc,subject = subject,content = content,status = status,hasAttachments = hasAttachments,sourceType = EmailSourceType.REGULAR //,//Metadata = Metadata
) {
}
object RegularEmailJsonSupport extends DefaultJsonProtocol with SprayJsonSupport {
implicit val eventDataFormat = jsonFormat1(DateTime.apply)
implicit val statusFormat = jsonFormat1(EmailStatus.apply)
implicit val EmailFormat = jsonFormat11(RegularEmail.apply)
}
这些是我得到的错误
Could not find implicit value for parameter um: akka.http.scaladsl.unmarshalling.FromrequestUnmarshaller
Could not find implicit value for evidence parameter of type RegularEmailJsonSupport.JF[P1] (Cannot find JsonWriter or JsonFormat type class for P1)
[error] implicit val statusFormat = jsonFormat1(EmailStatus.apply)
我也看到编译器没有抱怨 DateTime 的 jsonFormat,所以这个问题是由 EmailStatus 引起的吗?
EmailStatus 是Email 抽象类中的一个对象,它被RegularEmail 继承,如下所示:
object EmailStatus extends Enumeration {
type EmailStatus = Value
val READ,UNREAD,CLOSED = Value
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)