次のようなアクションを書く定型文を取り除くカスタム アクションを作成したいと思います。
Action[MyClass](BodyParsers.parse.json[MyClass]) { req => ...
ただし、クラス定義エラーが発生し続けます。これが私の最も成功した試みです:
class JsonAction[A: Reads] extends ActionBuilder[Request] {
def hardcodedJson[A: Reads](action: Action[A]) =
Action.async(BodyParsers.parse.json[A]) { request => action(request) }
def invokeBlock[A: Reads](request: Request[A], block: (Request[A]) => Future[Result]) = {
block(request)
}
override def composeAction[A: Reads](action: Action[A]) = hardcodedJson(action)
}
しかし、次のエラーが表示されます。method composeAction overrides nothing.
変更composeAction[A: Reads]
するcomposeAction[A]
と、タイプ A の Json シリアライザーがないことがわかります。
このカスタム アクションを定義する他の方法はありますか?