Finch で RequestReader と Route をバインドする方法を知りたいです。それについての完全な例は見つかりませんでした。
この例は finch github からのもので、適切に動作しています。
import io.finch.route._
import com.twitter.finagle.Httpx
val api: Router[String] = get("hello") { "Hello, World!" }
Httpx.serve(":3000", api.toService)
このコードがパス「hello」を取得し、応答「hello world」を返すことを理解しています
そして、RequestHeader をそれにバインドしたいと思います。
val doSomethingWithRequest: RequestReader[String] =
for {
foo <- param("foo")
bar <- param("bar")
} yield "u got me"
val api: Router[RequestReader[String]] = Get / "hello" /> doSomethingWithRequest
val server = Httpx.serve(":3000", api.toService)
このコードは、URL に「http://localhost:3000/hello?foo=3」を指定すると、「u got me」という応答が返されることを意味すると考えました。ただし、応答ステータスは 404 です。
Route と RequestHeader の組み合わせに何か問題があったと思います。
誰かがこれについて私を助けることができるかもしれません.また、このフィンチに関するいくつかの良いドキュメントを共有することをお勧めします. バージョンが頻繁に上がっており、ドキュメントが古くなっています https://finagle.github.io/blog/2014/12/10/rest-apis-with-finch/