リクエストの処理中にakka-httpライブラリがクラスタイプにマーシャリングおよびアンマーシャリングすることを知っていますが、今はGET
リクエストのリクエストパラメータを読み取る必要があります。 parameter()
メソッドを試してみたところ、ParamDefAux
タイプが返されましたが、これらの値は文字列タイプとして必要です
以下の質問で答えを確認します。
しかし、私が必要とすることはできません。
リクエストからクエリパラメータを抽出する方法を教えてください。 OR ParamDefAux
から必要な値を抽出するにはどうすればよいですか?
リクエストURL
http://Host:port/path?key=authType&value=Basic345
メソッド定義を取得する
val propName = parameter("key")
val propValue = parameter("value")
complete(persistanceMgr.deleteSetting(propName,propValue))
私のメソッド宣言
def deleteSetting(name:String,value:String): Future[String] = Future{
code...
}
http://Host:port/path?key=authType&value=Basic345
などのリクエストの場合
path("path") {
get {
parameters('key.as[String], 'value.as[String]) { (key, value) =>
complete {
someFunction(key,value)
}
}
}
}
コードではそれほど明示的ではありませんが、コンテキストからすべてのクエリパラメータを一度に抽出することもできます。次のように使用できます。
// Previous part of the Akka HTTP routes ...
extract(_.request.uri.query()) { params =>
complete {
someFunction(key,value)
}
}
抽出したい場合はquery parameters
ワンピースとして
extract(ctx => ctx.request.uri.queryString(charset = Charset.defaultCharset)) { queryParams =>
//useyourMethod()
}