Ich schreibe einen Ruby-Wrapper für eine JSON-API. Ich erwarte eine bestimmte Art von Antwort, wenn ein erfolgreicher Post an diesen Endpunkt gesendet wird ... aber ich bin mir nicht sicher, wie ich die Antwort erhalten soll.Wie teste ich eine Antwort von Faraday?
Ich bin mit Faraday wie folgt aus:
@connection ||= Faraday.new do |f|
f.url_prefix = "https://myapiurl.com/api/auth"
f.adapter :net_http
f.headers['User-Agent'] = "Some-Awesome-User-Agent"
f.headers['Content-Type'] = content_type
f.headers['Accept'] = api_version
f.params['API-KEY'] = api_key if api_key
f.response :json, content_type: /\bjson$/
end
Allerdings, wenn ich @connection.post
tun, halte ich ein SSL-Fehler bekommen:
@connection.post
Faraday::SSLError: SSL_connect returned=1 errno=0 state=error: certificate verify failed
Wenn ich nicht irre, wenn ich das beheben kann SSL-Fehler, ich sollte ein Antwortobjekt erhalten, auf das ich dann richtig reagieren kann?
Edit 1
ich OpenSSL 0.9.8zh 14 Jan 2016
verwende, auch ruby 2.3.1
, zusammen mit rvm 1.27.0 (latest)
Dies ist, was mein Gemfile.lock
wie folgt aussieht:
PATH
remote: .
specs:
mygem (0.1.0)
GEM
remote: https://rubygems.org/
specs:
coderay (1.1.1)
diff-lcs (1.2.5)
faraday (0.9.2)
multipart-post (>= 1.2, < 3)
faraday_middleware (0.10.0)
faraday (>= 0.7.4, < 0.10)
json (2.0.2)
method_source (0.8.2)
multipart-post (2.0.0)
pry (0.10.4)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
rake (10.5.0)
rspec (3.5.0)
rspec-core (~> 3.5.0)
rspec-expectations (~> 3.5.0)
rspec-mocks (~> 3.5.0)
rspec-core (3.5.1)
rspec-support (~> 3.5.0)
rspec-expectations (3.5.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.5.0)
rspec-mocks (3.5.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.5.0)
rspec-support (3.5.0)
slop (3.6.0)
PLATFORMS
ruby
DEPENDENCIES
bundler (~> 1.11)
faraday (~> 0.9.2)
faraday_middleware (~> 0.10.0)
json (~> 2.0, >= 2.0.2)
mygem
pry (~> 0.10.4)
rake (~> 10.0)
rspec (~> 3.0)
rspec-expectations (~> 3.5)
BUNDLED WITH
1.12.5