Какая библиотека сервлетов самая простая в ruby? - PullRequest
0 голосов
/ 28 июня 2011

Какой фреймворк вы рекомендуете для написания простых веб-приложений в ruby, между WebRick , Mongrel и Sinatra ?

Мне бы хотелосьотвечать в JSON на запросы от клиента.Я хотел бы как можно больше отделить свой собственный код от инфраструктуры Http.

Знаете ли вы какие-либо другие структуры?

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Я бы не рекомендовал использовать WEBrick, точка. Лучше всего вам подойдет Rack-совместимая среда. Вы можете писать прямо в Rack для скорости, но это действительно не нужно, поскольку Sinatra намного приятнее и все же очень быстр.

Вы также можете проверить Halcyon . Я не знаю, поддерживается ли он до сих пор, но он предназначен для написания API-интерфейсов, которые отвечают в JSON.

1 голос
/ 01 июля 2011

WEBrick и Mongrel - это серверы, а не платформы для создания веб-приложений. Как таковые, они имеют API более низкого уровня и привязаны к своим собственным особенностям, что делает их плохим местом для запуска, если вы хотите спроектировать свое веб-приложение так, чтобы оно могло работать на разных серверах.

Я бы искал фреймворк, основанный на Rack , который в наши дни является стандартным базовым слоем для создания веб-приложений и веб-фреймворков в Ruby.

Если вы делаете что-то действительно простое, изучение интерфейса Rack само по себе является хорошим началом.

E.G., Приложение Rack, которое анализирует 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

README Синатры - хорошее введение в его функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...