PlayFramework Forms를 사용해 보았습니다.
4791 단어 PlayFrameworkScala
소개
어제, PlayFramework에서 쿠키를 사용해 보았습니다. 라는 기사를 썼습니다.
오늘은 Forms에서 요청 매개 변수 (쿼리 문자열)를 읽는 것을 시도하고 싶습니다.
구체적으로 Postman이라는 도구를 사용하여 POST 메서드에 대한 요청을 보내 요청 매개 변수를 로드할 수 있는지 확인하고 싶습니다.
Forms에서 요청 매개 변수를 읽을 수 있다는 것을 알고 있으므로 주로 매개 변수 수가 적은 경우와 매개 변수 수가 많은 경우를 확인하고 싶습니다.
일단, 참고로 한 기사를 소개합니다.
마지막 PlayFramework에서 쿠키를 사용해 보았습니다.을 재사용합니다. 이 기사에서는 변경된 파일을 소개합니다.
파일
먼저 routes를 살펴 보겠습니다. POST 메소드를 이용하도록 변경했습니다.
POST / controllers.Tokyo.user
다음으로 Tokyo.scala를 살펴 보겠습니다. 요청 매개변수를 로드하도록 변경했습니다.
package controllers
import play.api._
import play.api.mvc._
import play.api.data._
import play.api.data.Forms._
case class UserData(name: String, age: Int)
object Tokyo extends Controller {
val userForm = Form(
mapping(
"name" -> text,
"age" -> number
)(UserData.apply)(UserData.unapply)
)
def user = Action { implicit request =>
val userData = userForm.bindFromRequest.fold(
error => UserData("error", 0),
data => data
)
Ok(s"name: ${userData.name}, age: ${userData.age}")
}
}
Postman으로 요청 보내기
요청 매개변수가 정상인 경우
예상대로 동작합니다.
요청 매개변수가 많으면
추가 매개 변수 weight를 무시합니다.
요청 매개변수가 적은 경우
일반적으로 get으로 읽으려고하면 None.get에서 런타임 오류가 발생합니다. 그래서 fold를 사용했습니다. 여기에서는 에러의 경우에 UserData("error", 0)를 돌려주도록 하고 있습니다.
되돌아가다
요청 매개변수가 많거나 적은 경우를 확인했습니다. 일단, 상정하고 있던 결과가 되었습니다.
Postman을 사용하면 HTML에서 POST 메소드를 준비 할 필요가 없습니다. 약간의 것을 시도 할 때 유용하다고 생각합니다.
Reference
이 문제에 관하여(PlayFramework Forms를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/t-mochizuki/items/4fc1b631bab69a62203e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)