是否可以在編譯時通過使用Template Haskell或其他方式通過配置文件動態添加路由。在編譯時在Scotty動態添加路由
Scotty有一個功能addRoute但我想動態地使用它。
例
import qualified Data.Text.Lazy as LTB
sampleRoutes :: [(String, LTB.Text)]
sampleRoutes = [("hello", LTB.pack "hello"), ("world", LTB.pack "world")]
欲迭代sampleRoutes陣列上方和在編譯時定義路由和響應。
import Web.Scotty
main = scotty 3000 $ do
middleware logStdoutDev
someFunc sampleRoutes
不使用TH我已經能夠做'do {middleware logStdoutDev; ((get(「/ hello」))(text(LTB.pack(「hello」)))); ((get(「/ world」))(text(LTB.pack(「world」))))}'我如何在基於某個列表的'ScottyM()'monad內部動態編寫動作? – user2512324
小*提示*:如果您只是使用'{ - #LANGUAGE OverloadedStrings# - }'(和'Text',而不是'String'可能是一個'*'),那麼您可以在那裏刪除(大部分,如果不是全部)'LTB.pack'如果你不真的需要'String = [Char]'部分),我也不會這麼做。 – Carsten