【问题标题】:What is the easiest servlet library in ruby?ruby 中最简单的 servlet 库是什么?
【发布时间】:2011-09-24 11:36:29
【问题描述】:

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

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

你知道其他框架吗?

【问题讨论】:

    标签: ruby http sinatra mongrel webrick


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。能否详细介绍一下WEBrick(或指点)?
    【解决方案2】:

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

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

    如果您正在做一些非常简单的事情,那么学习 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 的 README 很好地介绍了它的功能。

    【讨论】:

      猜你喜欢
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-22
      • 2011-03-08
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      相关资源
      最近更新 更多