【问题标题】:How to call an handler from an URL in Yesod如何从 Yesod 中的 URL 调用处理程序
【发布时间】:2020-01-12 06:13:29
【问题描述】:

我正在编写一个 Yesod 应用程序,我需要在内部从 URL 或路由调用处理程序。

我的意思是,当您向 Yesod 发送请求时,有时会将 URL 解析为 Route,然后使用调度函数调用正确的处理程序。我希望能够手动调用这些函数,以便我可以从 URL 创建路由并调用适当的处理程序。

【问题讨论】:

  • 如果我理解正确,您可以调用您编写的处理函数,就像调用任何其他函数一样。我假设我遗漏了什么或误解了什么?
  • 问题实际上是找到正确的处理程序来调用。例如,给定“/a/1”,我想找到与路由“/a”对应的处理程序,将“1”应用到它并将结果传递给我。我可以将字符串转换为路线上的路线和模式匹配以找到正确的处理程序,但这已经是 Yesod 每次处理请求时所做的事情,所以我不想重新发明轮子,而是希望能够使用 Yesod机械。

标签: haskell yesod


【解决方案1】:

ParseRoute 类型类的 parseRoute 方法不适合你吗?

【讨论】:

  • parseRoute 完成了一半的工作(实际上是三分之一)。第一个工作是将url拆分成组件,第二个是将这些组件转换成一个路由(这就是parseRoute所做的),第三个是找到并调用该路由对应的handler。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
相关资源
最近更新 更多