Goliath é um framework de servidor web Ruby sem bloqueio (assíncrono). Internamente, ele usa reator EventMachine e Ruby Fibers. Combinado com Grape – microestrutura de API tipo REST para Ruby, você obtém uma estrutura super agradável e super rápida para construir APIs.
Servidor Simples:
%w(goliath grape).each { |l| require l }
class CalculatorAPI < Grape::API
format :json
get '/add' do
{ result: params[:a].to_i + params[:b].to_i }
end
get '/subtract' do
{ result: params[:a].to_i - params[:b].to_i }
end
end
class APIServer < Goliath::API
def response(env) CalculatorAPI.call(env); end
end
Corra assim:
ruby api_server.rb -sv -p 9000
Teste com cURL:
curl -D - "http://localhost:9000/add?a=1&b=20"