ruby中最简单的servlet库是什么?

时间:2011-06-28 16:23:03

标签: ruby http sinatra mongrel webrick

您建议在WebRickMongrelSinatra之间使用ruby编写简单的Web应用程序是什么框架?

我想在json中回答客户的请求。我希望尽可能地将自己的代码与Http框架分离。

你知道其他任何框架吗?

2 个答案:

答案 0 :(得分:2)

我不建议使用WEBrick,期间。您最好通过Rack兼容框架提供服务。你可以直接在Rack中写一下速度,但这真的没必要,因为Sinatra更加愉快而且速度非常快。

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

答案 1 :(得分:1)

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

我会寻找一个基于Rack构建的框架,这是目前在Ruby中构建Web应用程序和Web框架的标准基础层。

如果你正在制作一些非常简单的东西,那么单独学习Rack的界面是一个很好的起点。

E.G。,一个Rack应用程序,它从一个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的自述文件很好地介绍了它的功能。