2012-07-06 65 views
0

我使用Twitter寶石的版本2結合apigee通過設置:配置嘰嘰喳喳寶石版本3 apigee

Twitter.gateway = 'myapp-myapigee.apiggeee.com'

在版本3中,通過網關配置支持API網關將被刪除。正如更新後的版本中指出的那樣,任何實現定製法拉第中間件的指針都是值得讚賞的。

回答

2

I removed the code允許在版本3中進行自定義網關配置,因爲它未經測試。如果您查看我刪除的代碼,則只需在發送請求之前立即將URL的host部分設置爲網關。如果這個中間件在2版爲你工作,你應該能夠將它複製到你的應用程序:

require 'faraday' 

class ApigeeGatewayMiddleware < Faraday::Middleware 

    def call(env) 
    url = env[:url].dup 
    url.host = 'myapp-myapigee.apiggeee.com' 
    env[:url] = url 
    @app.call(env) 
    end 

end 

然後運行:

Twitter.middleware.insert_after Faraday::Request::UrlEncoded, ApigeeGatewayMiddleware 

所有後續請求應該通過網關。

如果您提交的拉請求包含測試但我不願在代碼庫中有未經測試的代碼,我會考慮將網關配置重新添加到庫中。

+0

謝謝埃裏克。你提供的代碼解決了這個問題。 – maiaini 2012-07-07 10:10:06