【问题标题】:Unexpected 404 from Scotty来自 Scotty 的意外 404
【发布时间】:2016-03-07 08:46:14
【问题描述】:

我正在尝试在 Haskell 中使用 Scotty,并且按照教程,我可以像这样路由一个 url:

get "/hello/:name" $ do
            name <- param "name"
            text ("Hello " <> name <> "!!")

但是,捕获多个路由参数的语法是什么?以下都不起作用:

post "/newuser/:id/:name" $ do
            id <- param "id"
            name <- param "name"
            json $ User {userId = id, userName = name}

get "/users/{id}" $ do
            id <- param "id"
            json $ filter (matchesId id) allUsers

【问题讨论】:

  • 你有什么错误?我看不出有什么不对。注意id 已经绑定到一个函数
  • 没有错误,只是没有提供路线(好吧,我猜是错误 404)。你认为哪一个是正确的?
  • 第一个应该可以工作。我不知道 {param} 语法。也许其他地方有问题。你在尝试什么网址?
  • 在其他地方找到了括号语法。几个小时后我再试一次。网址例如是 localhost:1337/newuser/3/bob
  • 您确定要发送POST 请求吗?您可以使用curl -i -XPOST http://localhost:1337/newuser/3/bob 进行测试

标签: url haskell routing url-routing scotty


【解决方案1】:

HTTP 方法是 Scotty 中路由匹配的一部分。 要匹配您的 POST 路由,您必须使用 POST 请求对其进行测试,否则 Scotty 将使用 404 http 错误来回答。

【讨论】:

    猜你喜欢
    • 2020-12-05
    • 1970-01-01
    • 2023-03-24
    • 2017-08-21
    • 2014-04-06
    • 2015-11-01
    • 2015-02-13
    • 2011-08-15
    • 1970-01-01
    相关资源
    最近更新 更多