Calculadora assíncrona de Ruby com Golias e Uva

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"