在现实世界中,感谢 Rack::Builder,我启动了两个 sinatra 应用程序并将一个映射到“/api/v1”,另一个映射到“/ui”。
我希望映射到 /ui 的应用程序能够利用 /api 中的路由,但是因为它们是分开的,所以 ui 应用程序无法在 api 方面执行调用。
有没有办法通过机架从另一个应用程序的路由调用,或者我应该只使用 Net::HTTP ?
这是我正在尝试做的一个简化示例:
#/usr/bin/ruby
require 'sinatra'
class API < Sinatra::Base
get '/accounts/' do
'{"json":"account_data"}'
end
end
class UI < Sinatra::Base
get '/accounts/' do
# How do I get /api/accounts?
# call "/api/accounts" obviously does not work
# would use erb here to render accounts list in human readable form
end
end
rack = Rack::Builder.new
rack.map "/ui" do
run UI.new
end
rack.map "/api" do
run API.new
end
Rack::Server.start :app => rack
exit
非常感谢!