ユーザ登録・更新APIの実装
ユーザ情報をJSONで受け取り、登録もしくは更新を行います。
Readsの定義 JsonControllerのコンパニオンオブジェクトにユーザ情報を受け取るためのケースクラスと、JSONからそのケースクラスに変換するためのReadsを定義します。
object JsonController { ... // ユーザ情報を受け取るためのケースクラス case class UserForm(id: Option[Long], name: String, companyId: Option[Int]) // JSONをUserFormに変換するためのReadsを定義 implicit val userFormReads = ( (__ \ "id" ).readNullable[Long] and (__ \ "name" ).read[String] and (__ \ "companyId").readNullable[Int] )(UserForm) } 前述のWritesと同様、DSLを使わずに以下のように記述することもできます。
implicit val userFormFormat = new Reads[UserForm]{ def reads(js: JsValue): UserForm = { UserForm( id = (js \ "id" ).