2013-05-25 5 views
7

Ich versuche, Abfragen in einer Ruhe-ähnlichen Weise in meinen jaod Routen, z.Können Abfrageparameter in Yesod-Routen angegeben werden?

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

Aber das gibt mir die folgende Fehlermeldung:

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

Aber wenn ich schiebe, dass #Int hinteren Teil des Weges zu sein, es ist alles in Ordnung. Ich nehme an, das liegt daran, dass die Route nicht mit einem Parameter generiert wird?

Gibt es eine Möglichkeit für mich, diesen Parameter in meiner Route anzugeben?

+2

Es ist nicht REST! (und Yesod ist REST): D Warum nicht einfach "/ first/count/# Int"? :) – josejuan

Antwort

10

Nein, es ist nicht möglich mit dem aktuellen Setup, obwohl es eine Ergänzung ist, die ich in der Vergangenheit gemacht habe. Die Hauptgründe, die ich nicht habe, ist (1) es würde wahrscheinlich den Normalfall ein wenig schwierig zu erreichen machen, und (2) wie josejuan erwähnt, ist es oft (wenn auch nicht immer) möglich, dies in einen routenbasierten Parameter umzuwandeln.

+1

Danke für die Antwort, es ist kein Problem für mich, diese zurück in die URI zu schieben, ich war nur neugierig (und das Kaninchenloch hinunter). – Khanzor

Verwandte Themen