2013-05-25 3 views
7

私は、yesodのルートで安静のようにクエリを指定しようとしています。Yesodルートでクエリパラメータを指定することはできますか?

mkYesod "HelloWorld" [parseRoutes| 
/HomeR GET 
/first/?count=#Int FirstR GET 
/second/?count=#Int SecondR GET 
|] 

しかし、これは私に次のエラー与える:

The function `FirstR' is applied to one argument, 
but its type `Route HelloYesod' has none 

をしかし、私は#Intそのバックパスの一部であることにプッシュするならば、それはすべての罰金です。私はこれは、ルートがパラメータで生成されていないためだと思いますか?

私のルートにそのパラメータを指定する方法はありますか?

+2

これはRESTではありません! (そしてYesododはRESTです):D単に "/ first/count /#Int"ではないのはなぜですか? :) – josejuan

答えて

10

いいえ、それは私が過去に作ったと考えている追加ですが、現在の設定では不可能です。私がしていない主な理由は、(1)通常のケースを達成するのが少し困難になること、(2)ジョゼフアンが言及しているように、これを経路ベースのパラメータに変換することは可能ではありません。

+1

応答のためにありがとう、私にはURIにそれらをプッシュするのは問題ではない、私はちょうど興味があった(とウサギの穴を歩いて)。 – Khanzor