3

Sinatra 路由文档太短:

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

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

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

我一直在寻找REST文档和 HTTP 方法。我找到了一些用于options 此处link 此处(第 19.6.2.4 节)和<link> html 标记的词,以及在 Riak 数据库中用于模拟图形 db的示例link

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

4

1 回答 1

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 更像是资源的“反射”方法。如果您正在实现客户端,那么最好有一些后备,以防服务器无法正确实现这些方法。

于 2013-08-09T07:48:21.290 回答