Faraday: рдлреИрд░рд╛рдбреЗ POST рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рд▓реЙрдЧрд┐рдВрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЕрдкреНрд░реИрд▓ 2013  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: lostisland/faraday

рдореИрдВ рдПрдХ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

<strong i="6">@connection</strong> = Faraday.new(HOST, ssl: { verify: true }) do |faraday|
  faraday.request :url_encoded
  faraday.response :logger
  faraday.adapter Faraday.default_adapter
end

рдлрд┐рд░, рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдХ рдкреЛрд╕реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ:

@connection.post do |request|
  request.url "#{my_uri.path}?#{my_uri.query}"
  request.headers['Content-Type'] = 'application/json'
  request.body = my_object.to_json
end

рдЕрдиреБрд░реЛрдз рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдВ рд▓реЙрдЧ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдирд╣реАрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ, рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдз рдпреВрдЖрд░рдПрд▓ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкреГрд╖реНрда Google рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд┐рд▓рд╛ рд╣реИ: рдпрд╣ рдЕрдм рд╕рдорд░реНрдерд┐рдд рд╣реИред

require "logger"

Faraday.new do |faraday|
  faraday.response :logger, ::Logger.new(STDOUT), bodies: true
end

рдпрджрд┐ рдЖрдкрдХреЛ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдФрд░ рднреА рдмрдврд╝рд┐рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдкреБрд▓ рдЕрдиреБрд░реЛрдз рджреЗрдЦреЗрдВред

рд╕рднреА 11 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд▓рдХрдбрд╝рд╣рд╛рд░рд╛ рд╢рд░реАрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реБрд╡рд┐рдзрд╛ рд╣реЛ, рд▓реЗрдХрд┐рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХрднреА рднреА рдирд┐рдХрд╛рдпреЛрдВ рдХреЛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓реЙрдЧ рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рдмрдврд╝рд╛рдПрдВрдЧреЗред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕реЗ рдХрдИ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рдкреВрд░реЗ рд╢рд░реАрд░ рдХреЛ рд▓реЙрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрд╣ рднреА рдЪрд╛рд╣рд┐рдПред рд╣рд╛рдВ, рдирд┐рдХрд╛рдп рдмрд╣реБрдд рдмрдбрд╝реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рд▓реЙрдЧ рд╕реНрддрд░ debug рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рд░рд┐рдд рд▓реЙрдЧрд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рд╡рд░реНрдмреЛрд╕рд┐рдЯреА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рджреЗрдВред

@mtarnovan рд╕рд╣рдордд рд╣реБрдПред рдЕрдкрдбреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред рд╣рдо рд╕реБрд╡рд┐рдзрд╛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдСрдкреНрдЯ-рдЗрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдЧреИрд░-рд╕рд╛рджреЗ рдЯреЗрдХреНрд╕реНрдЯ рдирд┐рдХрд╛рдпреЛрдВ (рдЬреИрд╕реЗ рд╕рдВрдкреАрдбрд╝рд┐рдд рдпрд╛ рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ) рдХреЛ рдбрдВрдк рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧрд╛рд░реНрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

:+1: рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдХреБрдВрдЬреА

рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ рдкреГрд╖реНрда Google рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд┐рд▓рд╛ рд╣реИ: рдпрд╣ рдЕрдм рд╕рдорд░реНрдерд┐рдд рд╣реИред

require "logger"

Faraday.new do |faraday|
  faraday.response :logger, ::Logger.new(STDOUT), bodies: true
end

рдпрджрд┐ рдЖрдкрдХреЛ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдФрд░ рднреА рдмрдврд╝рд┐рдпрд╛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдкреБрд▓ рдЕрдиреБрд░реЛрдз рджреЗрдЦреЗрдВред

рдпрд╣ url_encoded рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ?

рд╣рд╛рдп @vemv , рдлреИрд░рд╛рдбреЗ рдореЗрдВ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХрд╛ рдХреНрд░рдо рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рдХрдиреЗрдХреНрд╢рди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛрдб рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ " url_encoded рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛"?
рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХреНрдпрд╛ рд╣реИ?

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреБрд░рд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдХрд┐ рдУрдкреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд░реНрдЬ рдХрд░ рд░рд╣рд╛ рд╣реИ: faraday.response :logger ред

@jpickwell рдЖрдк faraday.response рдХреНрдпреЛрдВрдХрд┐ logger рдорд┐рдбрд▓рд╡реЗрдпрд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдЕрдиреБрд░реЛрдзреЛрдВ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рджреЛрдиреЛрдВ рдХреЛ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ

рдмрд╕ рдЗрд╕ рдкрд░ рдЖрдпрд╛; рдЗрд╕ рдкрдВрдХреНрддрд┐ рд╕реЗ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рджреЛ рдЖрд░реНрдЧ рдкрд╛рд╕ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

Faraday.new do |faraday|
  faraday.response :logger, ::Logger.new(STDOUT), body: true, bodies: { request: true, response: true }
end

(рдЬрдм рддрдХ рдХрд┐ рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдкреНрд░рддрд┐рдмрджреНрдз ЁЯдФ рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ)

@davidalpert рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рдЖрдк рджреЛрдиреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ bodies: true рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ body: true рд╡рд┐рдХрд▓реНрдк рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдПрдХ рд╡реИрдз рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ (рд╢рд╛рдпрдж рдЙрдиреНрд╣реЗрдВ рдмрд╣реБрд╡рдЪрди рдЧрд▓рдд рдорд┐рд▓рд╛ рд╣реИ?)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕