我正在尝试 goliath 非阻塞红宝石服务器。
对于我的应用程序,我需要创建至少 2 条已定义的路线,比如说“/call_one”和“/call_two”,每个地图应该以不同的方式响应。
确实,它已被删除,但您并不真正需要它。您可以安装并运行通用映射器 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
该路由器已从 Goliath 中删除,因为它导致了许多棘手的边缘情况。Goliath 的初衷是一种路由,一种 API。因此,我们前面有 Nginx 或 HAProxy,它们将路由到正确的 Goliath API 服务器(通常每个路由都有一堆 Goliath 服务器)。
对我们来说,这是最好的解决方案,因为它允许我们更新任何 API 服务器而不影响其他任何服务器。