Использование spray-json marshallers в общей функции маршрутов
Я пишу REST-сервис, используя Spray. Некоторые из маршрутов, которые у меня есть, следуют одному и тому же шаблону (GET /foos, POST /foos, GET /foos/:id и т. Д.), Поэтому я хотел бы выделить эти маршруты в общую функцию, которую я могу вызвать как modelRoutes[Foo]("foos")
, modelRoutes[Bar]("bars")
и т.п.
Фактические операции с базой данных происходят с чертой Controller[T], и я неявно object FooController extends Controller[Foo]
и т.д. Например, def getAll: List[T]
на контроллере [T] и def getAll: List[App]
на контроллере приложений.
У меня проблема в том, что внутри modelRoutes[T <: Model : Controller](prefix: String)
тип модели потерян, поэтому маршаллер [T] и маршаллер [список [T]] не могут быть найдены. Я безуспешно пробовал разные варианты сочетаний и проявлений.
Как я могу правильно взаимодействовать с маршаллером в общей функции?