【问题标题】:How to perform local requests between Sinatra apps如何在 Sinatra 应用程序之间执行本地请求
【发布时间】:2015-01-14 16:38:36
【问题描述】:

我通过Rack::URLMap 安装了两个 Sinatra 应用程序。一个安装在根 (/) API 中,另一个安装在前端 /frontend 上。

我的问题是如何从前端向 API 发出请求?或者只是在它们之间进行通信,而不必发出 HTTP 请求(因为在我当前的环境中,这可能会导致 ECONNREFUSED,因为主机名可能与开发中的不同)。

我也可以获取应用程序的当前有效主机和端口,所以我回退到发出 HTTP 请求。

【问题讨论】:

  • 我最初的想法是:如果它们不分开,为什么要分开安装?如果它们是分开的,则让客户端发出请求。
  • @iain 好吧,它们是分开的。 API 已经存在了很长时间,前端只是它的一个简单客户端。我想我必须从客户端向 API 发出请求。
  • 我以前做过这个。我只是不记得何时何地甚至如何。我记得我必须直接使用 Rack。可能是一个调用函数。请检查 Rack 文档。
  • 找到它:github.com/sinatra/sinatra#triggering-another-route 但现在我看到它可能不是您要找的东西。

标签: ruby http sinatra rack


【解决方案1】:

最后我决定写一个本地请求类。它只是计算出当前的协议 + 主机 + 端口(因为另一个应用程序位于同一主机中),然后向它发出 HTTP 请求,然后我从前端使用我在课堂上编写的辅助方法使用它。无论如何,谢谢,线索最终让我明白了这一点!

【讨论】:

    猜你喜欢
    • 2018-11-14
    • 2015-06-13
    • 1970-01-01
    • 2012-08-23
    • 1970-01-01
    • 2013-02-03
    • 2012-10-23
    • 1970-01-01
    • 2016-10-14
    相关资源
    最近更新 更多