我正在将 Sangria 用于 Play 应用程序,目前正在努力实现架构定义。问题是,服务没有直接返回所需的对象,它返回一个包含该对象的 EitherT。
下面是一些代码示例
案例类
case class User(name: String, age: Int)
用户服务
def user(): EitherT[Future, AbstractError, User] = {...}
如果服务将返回 aUser
而不是 aEitherT[Future, AbstractError, User]
我将派生这样的架构:
架构
val UserType = deriveObjectType[UserService, User](
ObjectTypeName("User"),
ObjectTypeDescription("A simple user."))
我是否必须实现一个额外的层来User
从EitherT
对象中提取,或者是否有另一种方法来处理这种情况?