データベース内のデータを更新するためのRESTfulメソッドを作成しようとしています。PlayでScalaを使用しています。フレームワーク。アプリケーションというモデルがあり、データベース内のアプリケーションを更新できるようにしたいと考えています。したがって、putリクエストには、更新するアプリケーションのIDと、更新するオプションのプロパティのみが必要です。
だから私のルートではこれがあります:
PUT /v1/auth/application controllers.Auth.update_application(id: Long)
私が現在持っている方法はこれです:
def update_application(id: Long) = Action { implicit request =>
var app = Application.find(id)
for((key, value) <- request.queryString) {
app."$key" = value(0)
//app.name = value(0)
}
val update = Application.update(id, app)
Ok(generate(
Map(
"status" -> "success",
"data" -> update
)
)).as("application/json")
}
上記の方法では、リクエストとアプリオブジェクトをマップインスタンスとしてループし、モデルを使用して更新するアプリモデルを更新しています。リクエスト文字列をマップとして作成し、オブジェクトを反復処理する方が簡単な方法があることはわかっていますが、学習目的でこの方法を使用しています。私は初めてPlay!
でScala
、わずか1週間です。
そのように動的に変数を使用してプロパティを設定する方法はありますか?ループの最後にある上記のメソッドでは、でオブジェクトのプロパティを更新する方法ですGroovy
。だから私はScalaで同等のものを探しています。Scalaがこれを実行できない場合、このタスクを実行するための最善の方法は何ですか?Reflection
?物事を過度に複雑にしたくない