PlayFramework Forms를 사용해 보았습니다.

4791 단어 PlayFrameworkScala

소개



어제, PlayFramework에서 쿠키를 사용해 보았습니다. 라는 기사를 썼습니다.

오늘은 Forms에서 요청 매개 변수 (쿼리 문자열)를 읽는 것을 시도하고 싶습니다.

구체적으로 Postman이라는 도구를 사용하여 POST 메서드에 대한 요청을 보내 요청 매개 변수를 로드할 수 있는지 확인하고 싶습니다.

Forms에서 요청 매개 변수를 읽을 수 있다는 것을 알고 있으므로 주로 매개 변수 수가 적은 경우와 매개 변수 수가 많은 경우를 확인하고 싶습니다.

일단, 참고로 한 기사를 소개합니다.
  • Play2.0 (Scala)에서 양식 값 받기 | mwSoft
  • ScalaForms

  • 마지막 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 메소드를 준비 할 필요가 없습니다. 약간의 것을 시도 할 때 유용하다고 생각합니다.

    좋은 웹페이지 즐겨찾기