什么是Sinatra的OPTIONS,LINK和UNLINK路线?

时间:2013-08-09 05:24:54

标签: ruby rest sinatra http-method

Sinatra routes documentation太短了:

options '/' do
  .. appease something ..
end

link '/' do
  .. affiliate something ..
end

unlink '/' do
  .. separate something ..
end

我一直在搜索REST文档和HTTP方法。我找到了options herelink here(第19.6.2.4节)和the <link> html tag以及an example of link use in Riak database to emulate a graph db的一些字词。< / p>

但我正在搜索Sinatra用例和示例。在开始一个新项目之前,我需要知道我是否不需要它们,或者我是否在这些REST日中遗漏了重要的东西。

1 个答案:

答案 0 :(得分:3)

OPTIONS,LINK和UNLINK都是标准的HTTP 1.1请求方法。与更常用的方法(如GET和POST)相比,这些方法有点模糊。 Sinatra没有具体的内容。通常,Sinatra提供与HTTP方法同名的ruby方法。我们如何回应这种方法几乎留给我们。 OPTIONS方法的示例实现看起来像 -

options '/subscriptions' do
    status 200
    headers "Allow" => "BREW, POST, GET, PROPFIND, WHEN"
end

所有这一切都告诉Sinatra当Web服务器收到类似于 -

的HTTP请求时
OPTIONS /subscriptions HTTP/1.1
Host: www.yourwebsite.com

它应该如下回应

HTTP/1.1 200 OK
Allow: BREW,POST,GET,PROPFIND,WHEN

如果您的应用需要关联或取消关联两个资源,请继续使用这些方法。对他们来说,没有任何内在的RESTful或unRestful。 OPTIONS更像是资源的“反射”方法。如果您正在实现一个客户端,那么在服务器没有正确实现这些方法的情况下进行一些回退是个好主意。