f# – Freya – 如何使用可选的查询字符串参数定义Uri模板

我使用
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
点赞