【问题标题】:HEAD request in scalatrascalatra 中的 HEAD 请求
【发布时间】:2013-07-12 21:34:16
【问题描述】:

我是 scalatra 新手,也许我的问题没有意义,但这里是:

如何判断 scalatra 中的请求是 GET 还是 HEAD 请求?

基本上我有一个 REST api,它使用 GET 来获取项目,并使用 HEAD 来测试项目是否存在。我没有看到为 HEAD 请求编写处理程序的明显方法。

【问题讨论】:

  • 你尝试了什么?我从未使用过 Scalatra,但我想您应该以与 get() 类似的方式实现 head(),但响应主体为空......
  • 我没有看到文档中指定的明确的 head(),如果我尝试它会收到错误消息。通过阅读,一个 HEAD 请求由 get() 处理,在这种情况下,我需要能够在处理程序中区分它们。我弄错了吗?

标签: scala rest scalatra


【解决方案1】:

Scalatra 2.2.2(至少)自己实现 HEAD,运行 GET 代码并从正文中删除信息。

【讨论】:

    【解决方案2】:

    这似乎有效。我不确定这是否正确,而且不干净(scalatra 应该让 HEAD 成为一等公民)。无论如何,如果我做错了什么,希望有人能纠正我。但这是我的新手尝试...不确定是否重要。

    get ("/something",request.getMethod == "HEAD") {
    
    }
    
    get ("/something",request.getMethod == "GET") {
    
    }
    

    【讨论】:

    • 这对我来说似乎是一个不错的方法,但我想知道 Scalatra 是否有一些东西或在某个地方做了一些假设。例如,参见 org.scalatra.RouteRegistry.applymatchingMethods 的文档:“HEAD 必须与没有正文的 GET 相同,因此 HEAD 返回 GET 的路由。”
    猜你喜欢
    • 2011-12-11
    • 2017-08-21
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多