2013-05-14 5 views
3

Я пытаюсь преобразовать проект, который я использовал, используя Excon в Faraday с адаптером Excon, но мне не повезло.Передайте произвольные параметры подключения к Farday

Проблема заключается в том, что мне нужно пройти через некоторые произвольные параметры подключения до Excon, поскольку API, с которым я взаимодействую, использует SSL-сертификаты на стороне клиента для аутентификации.

Для соединения с прямым Excon я использую это:

@connection = Excon.new("some_url", client_cert: File.expand_path(@some_cert), client_key: File.expand_path(@some_key)) 

Согласно справке о Фарадее, я должен быть в состоянии сделать что-то вроде этого: s

@connection = Faraday::Connection.new(url: "some_url", client_cert: File.expand_path(@some_cert), client_key: File.expand_path(@some_key)) do |faraday| 
    faraday.adapter :excon 
end 

Когда я пытаюсь что (с 0.9 RC5 от Github), я получаю ошибку undefined method client_cert=, что заставляет меня думать, что документация устарела. Кто-нибудь знает, как передать произвольные параметры подключения через адаптер?

ответ

3

Вы должны передать параметры SSL как хэш. Это должно работать:

ssl_opts = { 
    client_cert: File.expand_path(@some_cert), 
    client_key: File.expand_path(@some_key) 
} 
@connection = Faraday::Connection.new(url: "some_url", ssl: ssl_opts) do |faraday| 
    faraday.adapter :excon 
end 

This gist имеет еще несколько примеров для использования SSL с Фарадеем.

+0

К сожалению, это еще не работает. параметры ssl не передаются адаптеру excon. в основном это не имеет значения, что я вставляю, ничто не делает это в connection_options здесь: https://github.com/lostisland/faraday/blob/master/lib/faraday/adapter/excon.rb#L6 Похоже, это могло возможно, будет ошибкой в ​​Фарадее ... – Eugene

+1

На самом деле это была ошибка в Фарадее, но я сделал запрос на растяжение, который будет реализовывать это, как описано. Поэтому, пока это не правильный ответ в настоящее время, он должен быть слишком длинным. – Eugene