0
play 2.0을 사용하여 REST API를 작성하려고합니다. updateMember 메서드로 업데이트 할 수없는 일부 필드 (예 : 사용자 이름 & 암호)가 포함 된 사용자 사례 클래스가 있습니다.제출 된 json을 Play 2.0으로 변환하는 방법은 무엇입니까?
package controllers.api
import org.joda.time.LocalDate
import play.api.Play.current
import play.api.db.slick.{DB, Session}
import play.api.mvc._
import play.api.libs.json._
import play.api.libs.functional.syntax._
import models.{Gender, User, UserId}
import repositories.UserRepository
object Member extends Controller {
def updateMember(id: Long) = Action {
DB.withSession {
implicit session: Session =>
val json: JsValue = request.body.asJson // how to deal with this?
val repository = new UserRepository
repository.findById(new UserId(id)).map {
user =>
def usernameAppender = __.json.update(
__.read[JsObject].map { o => o ++ Json.obj("username" -> user.username) }
)
json.transform(usernameAppender) // transform not found
Ok("updated")
}.getOrElse(NotFound)
}
}
}
내가 map
전화를 움직일 수 : request.body.asJson
이 옵션 [JsValue]를 반환하고, 내 사용자 조회는 옵션을 반환하기 때문에
map
이 필요합니다.
FP에서 이와 같이 여러 개의 옵션을 처리하는 더 좋은 방법이 있습니까?
감사합니다. 당신도 내 다음 질문을 선매 :-). – jbrown