1

我正在尝试 goliath 非阻塞红宝石服务器。

对于我的应用程序,我需要创建至少 2 条已定义的路线,比如说“/call_one”和“/call_two”,每个地图应该以不同的方式响应。

Goliath 文档提到了地图功能,这正是我所需要的。但它不再存在于source中。

4

2 回答 2

0

确实,它已被删除,但您并不真正需要它。您可以安装并运行通用映射器 gem(记住 Goliath 几乎与机架兼容),例如https://github.com/joshbuddy/http_router

或者您可以检查环境变量以查看 RACK 为您提供的内容并进行正确的路由,例如

class MyServer < Goliath::API    
  def response(env)
    case env['PATH_INFO']
      when '/action_1'
        [200, {}, "Action 1 Response"]
      when '/action_2'
        [200, {}, "Action 2 Response"]
      when '/'
        [200, {}, "Root Action"]
      else
        raise Goliath::Validation::NotFoundError
    end
  end
end
于 2013-03-17T13:26:25.870 回答
0

该路由器已从 Goliath 中删除,因为它导致了许多棘手的边缘情况。Goliath 的初衷是一种路由,一种 API。因此,我们前面有 Nginx 或 HAProxy,它们将路由到正确的 Goliath API 服务器(通常每个路由都有一堆 Goliath 服务器)。

对我们来说,这是最好的解决方案,因为它允许我们更新任何 API 服务器而不影响其他任何服务器。

于 2013-05-21T01:30:56.573 回答