0

在WebRickMongrelSinatra之间,你推荐什么框架来用 ruby​​ 编写简单的 Web 应用程序?

我想以 json 格式回答来自客户的请求。我希望自己的代码尽可能地与 Http 框架解耦。

你知道任何其他框架吗?

4

2 回答 2

2

我不建议使用 WEBrick,期间。您最好使用与机架兼容的框架。您可以直接在 Rack 中编写以提高速度,但这实际上是不必要的,因为 Sinatra 更令人愉快并且仍然非常快。

您可能还想查看Halcyon。我不知道它是否仍在维护,但它是为编写以 JSON 响应的 API 而设计的。

于 2011-06-28T16:29:20.517 回答
1

WEBrick 和 Mongrel 是服务器,而不是构建 Web 应用程序的框架。因此,它们具有较低级别的 API,并且与它们自己的特性相关联,如果您想设计 Web 应用程序以便它可以在不同的服务器上运行,那么它们是一个不好的起点。

我会寻找一个构建在Rack上的框架,它是如今在 Ruby 中构建 Web 应用程序和 Web 框架的标准基础层。

如果您正在做一些非常简单的事情,那么学习 Rack 的界面本身就是一个很好的起点。

EG,一个机架应用程序,它从 post 请求的正文中解析 json 并将其打印出来。

# in a file named config.ru
require 'json'
class JSONPrettyPrinterPrinter
  def call env
    request  = Rack::Request.new env
    if request.post?
      object = JSON.parse request.body
      [200, {}, [JSON.pretty_generate(object)]]
    else
      [200, {}, ["nothing to see here"]]
    end
  end
end

run JSONPrettyPrinterPrinter

rackup您可以通过在与文件相同的目录中运行来运行它。

或者,如果你想要更高级别的东西,你可以使用sinatra,它看起来像这样

require 'sinatra'

post '/' do
  object = JSON.parse request.body
  JSON.pretty_generate(object)
end

Sinatra 的 README 很好地介绍了它的功能。

于 2011-06-30T23:42:39.427 回答