Интересно, как связать RequestReader и Route вместе в Finch. Я не нашел полный пример об этом.
Этот пример исходит от finch github, и он работает правильно.
import io.finch.route._
import com.twitter.finagle.Httpx
val api: Router[String] = get("hello") { "Hello, World!" }
Httpx.serve(":3000", api.toService)
Я понимаю, что этот код получит путь «привет» и вернет ответ «привет, мир»
а затем я хочу привязать к нему 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", вернет ответ «ты меня понял». Однако статус ответа — 404.
Я думаю, что я сделал что-то неправильно для комбинации между Route и RequestHeader.
Может быть, кто-то может помочь мне с этим, также было бы лучше поделиться какой-нибудь хорошей документацией об этом Finch. версия так часто обновляется, а документ устарел https://finagle.github.io/blog/2014/12/10/rest-apis-with-finch/