2015-08-11 13 views
5

RequestReader ve Route'u Finch'te nasıl birleştireceğimi merak ediyorum. Bunun hakkında tam bir örnek bulamadım.RequestReader'ın Finch'de Route'a nasıl bağlandığı

Bu örnek ispinoz github'den geliyor ve düzgün çalışıyor.

import io.finch.route._ 
import com.twitter.finagle.Httpx 

val api: Router[String] = get("hello") { "Hello, World!" } 

Httpx.serve(":3000", api.toService) 

bu kod "Merhaba" yolunu alacak ve yanıt verecektir anlıyoruz "merhaba dünya"

ve sonra buna RequestHeader bağlamak istiyorum.

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) 

Bu kod url verilirse " http://localhost:3000/hello?foo=3" o tepkiyi "u got me" dönecektir anlamına düşündük. Ancak, yanıt durumu 404.

Rota ve RequestHeader arasındaki kombinasyon için yanlış bir şey yaptığımı düşünüyorum.

Belki birisi bana bu konuda yardımcı olabilir, bu Finch hakkında bazı iyi dokümanları paylaşmak daha iyi olurdu. sürüm sık sık çarpıyor ve güncelliğini yitiriyor doc https://finagle.github.io/blog/2014/12/10/rest-apis-with-finch/

cevap

6

Bunu sorduğunuz için teşekkür ederiz! Bunun StackOverflow'taki ilk Finch sorusu olduğuna inanıyorum.

bu Router S ve RequestReader birlikte ? bağdaştırıcının kullanarak s oluşturmak için oldukça mümkündür 0.8 (has been released today olduğu) yana (Daha fazla bilgi için bölüm "Composing Routers" bakınız).

Bu işlevi gösteren örnek aşağıdadır.

// GET /hello/:name?title=Mr. 
val api: Router[String] = 
    get("hello"/string ? param("title")) { (name: String, title: String) => 
    s"Hello, $title$name!" 
    } 
Httpx.serve(":8081", api.toService) 

İstediğiniz blog yayını, tüm blog yazılarında durum oldukça büyük ölçüde modası geçmiş. Bununla birlikte, Github repo üzerinde gerçek tutmaya çalıştığımız bir comprehensive documentation var.

+0

U yaratıcıdır! Teşekkürler –

İlgili konular