我使用
Freya web stack来构建REST API,并且无法为路由定义URI模板.
我已经定义了一个看起来像这样的Uri模板:
"/{store}/{partition}{?date}"
现在,Freya路由器将此Uri模板与以下URL匹配:
http://localhost/a/1?date=2015
http://localhost/b/3?date=2013
但是,如果我省略查询字符串,则Uri模板不再与URL匹配.例如,以下网址与模板不匹配:
http://localhost/a/1
http://localhost/b/3
如何使用带有可选查询字符串参数的Freya定义Uri模板?
非常感谢任何帮助,在此先感谢.
最佳答案 我在Freya的源代码中找不到任何建议查询字符串参数可以在Uri模板中定义为可选的.
但是,我可以定义两个路由,可以用两个单独的Uri模板定义指向相同的freyaMachine.
我最终得到了两条这样的路线:
let routes =
freyaRouter {
route (Methods [GET]) "/{store}/{partition}" myMachine
route (Methods [GET]) "/{store}/{partition}{?date}" myMachine
} |> FreyaRouter.FreyaPipeline