WebRick、Mongrel、およびSinatraの間で、Ruby で単純な Web アプリケーションを作成するためにどのフレームワークをお勧めしますか?
クライアントからのリクエストにjsonで回答したいと思います。独自のコードを Http フレームワークから可能な限り分離したいと考えています。
他のフレームワークを知っていますか?
WEBrick の使用はお勧めしません。ラック互換のフレームワークが最適です。速度を上げるためにRackに直接書き込むこともできますが、Sinatraの方がはるかに快適で、それでも非常に高速であるため、実際には必要ありません.
Halcyonもチェックしてください。まだ維持されているかどうかはわかりませんが、JSON で応答する API を作成するために設計されています。
WEBrick と Mongrel はサーバーであり、Web アプリケーションを構築するためのフレームワークではありません。そのため、低レベルで独自の特異性に結び付けられた API を持っているため、異なるサーバーで実行できるように Web アプリケーションを設計する場合、開始点として不適切です。
最近では、Ruby で Web アプリや Web フレームワークを構築するための標準ベース レイヤーであるRack上に構築されるフレームワークを探します。
本当に単純なものを作成している場合は、Rack のインターフェイス自体を学習することから始めるのが適切です。
EG は、ポスト リクエストの本文から 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 は、その機能の優れた紹介です。