スプレーを使用して REST サービスを作成しています。私が持っているルートのいくつかは同じパターン (GET /foos、POST /foos、GET /foos/:id など) に従っているので、これらのルートをなどのようmodelRoutes[Foo]("foos")
に呼び出すことができる汎用関数に分解したいと思います。modelRoutes[Bar]("bars")
実際のデータベース操作は Controller[T] トレイトで発生し、暗黙的object FooController extends Controller[Foo]
などがあります。たとえば、def getAll: List[T]
Controller[T] とdef getAll: List[App]
AppController です。
私が抱えている問題は、内部modelRoutes[T <: Model : Controller](prefix: String)
でモデルの型が失われているため、Marshaller[T] と Marshaller[List[T]] が見つからないことです。これまでのところ、暗黙的およびマニフェストのさまざまな順列を試しましたが、うまくいきませんでした。
ジェネリック関数でマーシャラーと正しく対話するにはどうすればよいですか?