私はスケーラの初心者です。今のところ私は基本的な再生/滑らかなアプリケーション(ユーザデータベースの一種)を構築しようとしています。ScalaはHttpResponseへのオブジェクトのコレクションを作成します
私はすべてのものを構築することができたようですが、データはフロントエンドに転送しています。ここで
は私が持っているものです。
UserDAO.scala
class UserDao @Inject()(protected val dbConfigProvider: DatabaseConfigProvider) extends BaseDao {
import driver.api._
def entities = TableQuery[UsersTable]
def all(): Future[Seq[User]] = {
db.run(entities.result)
}
class UsersTable(tag: Tag) extends BaseTable(tag, "USER") {
def email = column[String]("email")
def password = column[String]("password")
def * = (id, email, password) <> (User.tupled, User.unapply)
}
}
Application.scala
Application @Inject()(userDAO: UserDao) extends Controller {
def users = Action.async {
val userList = userDAO.all()
userList
.map { list => Ok(list.map(elem => Json.toJson(elem : UserDto))) }
.recover { case _ => InternalServerError }
}
}
UserDTO.scala
case class UserDto(id: Long, login: String)
object UserDto {
implicit val userWriter = Json.writes[UserDto]
implicit def from(user: User): UserDto = UserDto(user.id, user.login)
}
コンパイラがApplication.scalaの.map { list => Ok(list.map(elem => Json.toJson(elem : UserDto))) }
について不平を言っている理由は分かりません。私はjson
に変換するために必要なすべてを提供したようです。誰でも、私が間違っていることを示すことができますか?
'' Json.toJson(リスト)を試して
Ok(list.map(elem => Json.toJson(elem : UserDto)))
を交換してください。 json配列ではなくJSONオブジェクトのリストを返そうとしているようです。 –