适当的方式来响应不受支持的HTTP请求?

时间:2014-09-29 13:59:53

标签: ruby-on-rails api response rails-routing

对于仅限API的应用,我正在考虑使用before_action验证传入的HTTP请求,例如:

# Returns a 405 status for unsupported HTTP methods.
def verify_post_request
  head :method_not_allowed unless request.post?
end

但我不喜欢必须创建额外的路由来处理每个不受支持的HTTP方法。如果没有额外的路由,应用程序将返回404以获取不支持的请求,因为找不到匹配的路由。拥有所有这些额外的“未使用”路线似乎是代码味道。

这里的最佳做法是什么?

更好吗?
  • 拥有您支持的方法的路由,否则为404
  • 拥有所有方法的路线,以便不受支持的路线能够提供更丰富的信息405

前者对维护者来说似乎更好(更干净的代码),而后者对用户来说似乎更好(描述性反馈)。

1 个答案:

答案 0 :(得分:3)

我会选择你支持的方法路线,否则为404 我认为你的应用程序应该只响应它需要的路由,并留下其他所有路由。

无需提供更多信息丰富的回复。不存在的路线是404路线,仅此而已。