在Play框架上使用ReactiveMongo版本0.11.2编写服务文件的最规范方法是什么?在旧版本中,我可以使用以下控制器功能
def img(id: String) = Action.async {
val file = gridFS.find(BSONDocument("_id" -> BSONObjectID(id)))
serve(gridFS, file,dispositionMode = "inline")
}
当前的MongoController GridFS使用的Json序列化器/反序列化器不能直接为我工作。我想写这样的东西......
class Admin @Inject() (val reactiveMongoApi: ReactiveMongoApi) extends Controller with MongoController with ReactiveMongoComponents {
...
def img(id: String) = Action.async {
val file = reactiveMongoApi.gridFS.find(Json.obj("_id" -> Json.obj( "$oid" -> id)
serve(reactiveMongoApi.gridFS, file)
}
}
但它当然没有编译gridFS.find
行的错误。
No Json deserializer found for type T. Try to implement an implicit Reads or Format for this type.
如果我开始编写(实际上是从ReactiveMongo转移)反序列化和序列化的所有含义到ReadFile它可以工作 - 但是有没有更优雅的方法呢?