0

使用するメソッドは DELETE リクエストで、Web サービス呼び出し用の URL は次のとおりです。

http://www.localhost:9000/example/com/foo/bar

/foo と /bar を抽出して変数に格納したい。

誰もこれを行う方法を知っていますか? ありがとう!

Web サービスに play2-mini を使用し、http リクエストを作成するために scala にディスパッチを使用しています。

4

2 に答える 2

2

Playには、パラメーターを渡す非常に洗練された方法があり、それはルート定義を介して行われます。conf / Routesファイルで、次のようなルートを定義します

GET  /example/com/:foo  controllers.yourcontroller.deleteAction(foo: String)

あなたが入るとき

http://www.localhost:9000/example/com/user

ブラウザではdeleteAction、コントローラによって定義されたものが呼び出され、パラメータで文字列「user」が渡されますfoo。そこであなたはそれを操作することができます。URIの後にコロンが続く部分は動的であることに注意してください。文字列であるという要件を満たすものはすべて受け入れ、変数に格納することでdeleteActionに転送しfooます。

于 2012-07-18T12:56:05.693 に答える
0

次のコードに示すように、正規表現を使用できます。

object App extends Application { 
  def route = Routes(
    Through("/people/(.*)".r) {groups: List[String] =>
      Action{ 
        val id :: Nil = groups
        Ok(<h1>It works with regex!, id: {id}</h1>).as("text/html") 
      }
    }, 
    {
      case GET(Path("/coco")) & QueryString(qs) => Action{ request =>
        println(request.body)
        println(play.api.Play.current)
        val result = QueryString(qs,"foo").getOrElse("noh")
        Ok(<h1>It works!, query String {result}</h1>).as("text/html") }

      case GET(Path("/cocoa")) => Action{ request =>
        Ok(<h1>It works with extractors!</h1>).as("text/html") }
      },
    Through("/flowers/id/") {groups: List[String] =>
      Action{ 
        val id :: Nil = groups
        Ok(<h1>It works with simple startsWith! -  id: {id}</h1>).as("text/html") 
      }
    }
  )
}
于 2012-11-10T08:18:23.503 に答える