我最終按照約翰說的去做,並在我的應用程序中更改我的API端點。爲了讓應用程序工作的早期版本(有Heroku的子域在其中硬編碼),我結束了寫這個快速西納特拉應用程序,取代了我原來的Heroku應用程序使用它:
require 'sinatra'
require 'mechanize'
API_BASE_URL = "http://newdomain.com"
get '/*' do |path|
url = URI("#{API_BASE_URL}/#{path}")
agent = Mechanize.new
agent.user_agent = request.user_agent
headers = {'AUTHORIZATION' => request.env['HTTP_AUTHORIZATION']}
page = agent.post(url, params, headers)
content_type :json
page.body
end
get '/*' do |path|
url = URI("#{API_BASE_URL}/#{path}")
agent = Mechanize.new
agent.user_agent = request.user_agent
headers = {'AUTHORIZATION' => request.env['HTTP_AUTHORIZATION']}
page = agent.get(url, params, nil, headers)
content_type :json
page.body
end
(此代碼很可能減少最多隻能使用一種方法)
看來第一條路線應該是'/ *'do |路徑| 。 – 2013-08-09 13:13:45