Faraday: рд╡рд┐рдХрд▓реНрдк HTTP рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡рд┐рдзрд┐ рдирд╣реАрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 24 рд╕рд┐рддре░ 2013  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: lostisland/faraday

рдХреНрдпрд╛ рдЗрд╕реЗ рдЗрд╕ рд╕рд░рдгреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

https://github.com/lostisland/faraday/blob/master/lib/faraday/connection.rb#L137

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

рднрд▓реЗ рд╣реА рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ @mislav рд╕реЗ рд╕рд╣рдордд @sferik рд░рд╛рдп рдФрд░ рд╕рдореБрджрд╛рдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореИрдВрдиреЗ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХреА рдФрд░ рджреЗрдЦрд╛ рдХрд┐ options рдмрд╕ рдПрдХ attr_reader , рд╕рд╛рде рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓реЗ рдЬрд╛ рд░рд╣реЗ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЗрд╡рд▓ рдлреИрд░рд╛рдбреЗ 1.0 рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рддрдм рддрдХ, рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИ рддреЛ рдЗрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА

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

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА options рдПрдХреНрд╕реЗрд╕рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╡рд┐рдХрд▓реНрдк рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЖрдкрдХреЛ run_request(:options) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛

рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рднреЛрд▓реА рдзрд╛рд░рдгрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рдХреЗ рдмрдЬрд╛рдп :options рдХреЛ, рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ, :configuration рдХреЛ рд░реАрдореИрдк рдХрд░рдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛?

рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ HTTP рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдкрд┐рдд рдПрдкреАрдЖрдИ рдХреЛ рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ
рд╡рд┐рдзрд┐ рдЬреЛ run_request рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реБрд▓рдн рд╣реИред

IMHO, рдЗрд╕ рдирд┐рд░реНрдгрдп рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред OPTIONS рдПрдХ рдорд╛рдиреНрдп HTTP рд╡рд┐рдзрд┐ рдирд╛рдо рд╣реИ рдФрд░ run_request рд╣рдореЗрд╢рд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЛ рддреЛрдбрд╝рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдмрд╛рдж рдореЗрдВ рдирд┐рд░реНрдгрдп рдкрд░ рдкрдЫрддрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп, 1.0 рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЕрднреА рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

run_request рд╣рдореЗрд╢рд╛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдХрд▓реНрдк рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИ?

рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдлреИрд░рд╛рдбреЗ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдореИрдВ
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ run_request рд╕реЗ рдЕрдзрд┐рдХ get , post рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВред

@mislav #run_request рдХреЛрдИ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ #get , #post , рдЖрджрд┐ред рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдХрд┐ рдореИрдВ Twitter::REST::Client#request рдореЗрдВ рдлреИрд░рд╛рдбреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ: https://github.com/sferik/twitter/blob/master/lib/twitter/rest/client.rb#L130 -L144

run_request рдХреЛрдИ рдмреНрд▓реЙрдХ рдирд╣реАрдВ рд▓реЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ #get, #post, рдЖрджрд┐ред

рдЖрдкрдХреЛ рдРрд╕рд╛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ ?

run_request рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдПрдХ рдЖрджрд░реНрд╢ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЕрд░реНрдерд╛рдд send рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

рдЕрдм рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдореБрдЭреЗ #run_request рдХреНрдпреЛрдВ рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ Twitter::Client#request рдХреЛрдб рдореЗрдВ рдПрдХ рдмрд┐рдВрджреБ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдПрдХ рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛: https://github.com/sferik/twitter/commit/2d70b64674bdc204c85c47327afa571f9641e545ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреЛрдб #send рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рдл рд╣реИ (рдХрд╛рд╢ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддрд╛)ред

#run_request , рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреА рдкрдбрд╝реА рдХрд┐ рдХреНрдпрд╛ рдЕрдиреБрд░реЛрдз PUT рдпрд╛ POST рдФрд░ GET , DELETE рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдмреЙрдбреА рдмрдирд╛рдо рдХреНрд╡реЗрд░реА рдкреИрд░рд╛рдореНрд╕ рд╕реЗрдЯ рдХрд░реЗрдВред #run_request рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд┐рддреНрд░рд╡рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред

рдореИрдВ рдЖрдкрдХреЛ twitter рдордгрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреБрдиреМрддреА #send рдХреЛ #run_request рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрдо рдЬрдЯрд┐рд▓ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ (рдХреЛрдб рдЬрд▓рд╡рд╛рдпреБ рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░) )


OPTIONS рдкрджреНрдзрддрд┐ рдХреЗ рдмрдЪрд╛рд╡ рдореЗрдВ, HTTP рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рднрд╡рд┐рд╖реНрдп рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдирд╛ рдмрд╣реБрдд рдХрдард┐рди рд╣реИред HTTP 1.0 рдореЗрдВ, рдХреЗрд╡рд▓ GET рдФрд░ POST рдерд╛ред 1999 рдореЗрдВ, HTTP 1.1 рдореЗрдВ рдФрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рдЬреЛрдбрд╝реА рдЧрдИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рддрдХ рд░реЗрд▓реНрд╕ 2 рдиреЗ рд╕рдВрд╕рд╛рдзрди рдорд╛рд░реНрдЧреЛрдВ рдореЗрдВ PUT рдФрд░ DELETE рд▓рд┐рдП рд╕рдорд░реНрдерди рдирд╣реАрдВ рдЬреЛрдбрд╝рд╛, рддрдм рддрдХ рдЙрдиреНрд╣реЗрдВ рдЕрдзрд┐рдХрддрд░ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрдм, рд░реЗрд▓ 4 рдореЗрдВ, PATCH рд╕рд╛рде PUT рд╕рдорд░реНрдерд┐рдд рд╣реИред рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, рдЖрдкрдиреЗ (рд╕рд╣реА рдврдВрдЧ рд╕реЗ) рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ рдХрд┐ " PATCH рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИ" рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЬ, рд░реЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╕рднреА рдирдП рдПрдкреАрдЖрдИ рд╕рд░реНрд╡рд░ PATCH рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЧрд┐рдЯрд╣рдм рдПрдкреАрдЖрдИ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ , рдЬреЛ рд░реЗрд▓ 4 рдЬрд╛рд░реА рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ PATCH рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рдерд╛ред GitHub API рдХреНрд░реЙрд╕ рдУрд░рд┐рдЬрд┐рдирд▓ рд░рд┐рд╕реЛрд░реНрд╕ рд╢реЗрдпрд░рд┐рдВрдЧ (CORS) рдХреЗ рд▓рд┐рдП OPTIONS рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред OPTIONS рдХрд╛ рдпрд╣ рдЙрдкрдпреЛрдЧ рдЕрднреА рддрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рдЧрднрдЧ рд░рд╛рддреЛрдВрд░рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ CORS рдХреЛ рд░реЗрд▓ 5 рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реЛрдЧрд╛ред

HTTP рд╡рд░реНрдм рдПрдХ HTTP рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрд░рдХреНрд╖рд┐рдд рд╢рдмреНрдж рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╣реА рд╣реИрдВ рдФрд░ рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╣рдореЗрдВ рдлреИрд░рд╛рдбреЗ 1.0 рдореЗрдВ рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреЗ рдирд╛рдЧрд░рд┐рдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрди рд╕рднреА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рднрд▓реЗ рд╣реА рдЗрд╕рдХрд╛ рдорддрд▓рдм рд░рд╛рд╕реНрддреЗ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рддреЛрдбрд╝рдирд╛ рд╣реЛред

CORS рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рд╣реИред рдкреНрд░рдердо рд╢реНрд░реЗрдгреА рдХреНрд░рд┐рдпрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд┐рдирд╛ 1.0 рдЬрд╣рд╛рдЬреЛрдВ рдкрд░ рдореБрдЭреЗ рдирд┐рд░рд╛рд╢рд╛ рд╣реЛрдЧреАред

рдореБрдЭреЗ _bump_ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди options рдХреЛ OPTIONS рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдкрд░ рдХреЛрдИ рд╕рдордЭреМрддрд╛? рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреАред

рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдкрд░ рдирд╣реАрдВ рдмрд┐рдХрд╛ рд╣реВрдВред рддрдм рд╡рд░реНрддрдорд╛рди options рдкрджреНрдзрддрд┐ рдХреЛ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛?

рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬрд┐рдирдХрд╛ рд╣рдо рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗ рд╣реИрдВ рдХреНрд░рд┐рдпрд╛рдПрдБ: рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдкреЛрд╕реНрдЯ рдХрд░реЗрдВ, рдбрд╛рд▓реЗрдВ, рд╣рдЯрд╛рдПрдВред рдЗрд╕рд╕реЗ рдпрд╣ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдЙрдиреНрд╣реЗрдВ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдХреБрдЫ рдХреНрд░рд┐рдпрд╛ рд╣реЛ рд░рд╣реА рд╣реЛрддреА рд╣реИред options рдПрдХ рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА рдФрд░ OPTIONS рдкреНрд░рддрд┐ рдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ run_request рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдореИрдВ рдЙрд╕ рдХрд╛рд░рдг рдХреЛ рд╕реБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ!) рддреЛ рдореИрдВ рд╕реБрдЭрд╛рд╡ рджреВрдВрдЧрд╛ рдирдИ рд╡рд┐рдзрд┐ http_options рдХрд╛ рдирд╛рдордХрд░рдг рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рд╡рд┐рдзрд┐ рд╣реИред

"рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпрд╛рдВ рдХреНрд░рд┐рдпрд╛ рд╣реИрдВ" рдХрд╛ рддрд░реНрдХ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡реЗ рдлреИрд░рд╛рдбреЗ рдореЗрдВ рд╡рд┐рдзрд┐рдпрд╛рдБ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХреНрд░рд┐рдпрд╛ рд╣реИрдВ, рд╡реЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рдореМрдЬреВрдж рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ HTTP рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВред options IMO рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрджрд┐ рдпрд╣ options рдирд╣реАрдВ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг рд╣реИ, рддреЛ head рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ HTTP рдореЗрдВ "рд╣реЗрдб" рдХреНрд░рд┐рдпрд╛ "рдЧреЛрдЗрдВрдЧ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдкреАрдЖрдИ рдХреЛ options рд╕рд╛рде рддреЛрдбрд╝рдиреЗ рдХреА рдЪрд┐рдВрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдмрдбрд╝рд╛ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ "рд╕рдорд░реНрдерд┐рдд" рдирд╣реАрдВ рд╣реИред рд╕рднреА HTTP рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд╣реИред

рдФрд░ run_request рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХреЛрдб рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд╛рдл рд╣реИред

рдпрд╣ рдЕрднреА рднреА рдЖрдкрдХреА рдХреЙрд▓ рд╣реИ (рдЬрд╛рд╣рд┐рд░ рд╣реИ :-)) рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрдкрдХрд╛ рд╡рд┐рдЪрд╛рд░ рдмрджрд▓рдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛, рдФрд░ рдпрджрд┐ рдпрд╣ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ, рддреЛ рдпрд╣ "_options_ рдирд╣реАрдВ рд╣реИ" рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рд╣реИ рдПрдХ рдХреНрд░рд┐рдпрд╛"ред

+1 @nhoki

рдЗрд╕рдиреЗ рдореБрдЭреЗ рдЖрдЬ рдЪреМрдВрдХрд╛ рджрд┐рдпрд╛ред conn.get , conn.post , conn.delete рдЖрджрд┐ рдХреЗ рд╕рд╛рде рд╕рднреА рдЙрджрд╛рд╣рд░рдг рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ conn.options ред

рд╢рд╛рдпрдж рд╣рдо рдЗрд╕ рдЕрд╕рдВрдЧрддрд┐ рдФрд░ рдЗрд╕рдХреЗ run_request рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ Faraday::Connection rdocs рдпрд╛ README рдореЗрдВ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред

+1

рд╡рд┐рдХрд▓реНрдк GET, POST, DELETE рдХреЗ рд╕рдорд╛рди рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ?

рднрд▓реЗ рд╣реА рдореИрдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ @mislav рд╕реЗ рд╕рд╣рдордд @sferik рд░рд╛рдп рдФрд░ рд╕рдореБрджрд╛рдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдореИрдВрдиреЗ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХреА рдФрд░ рджреЗрдЦрд╛ рдХрд┐ options рдмрд╕ рдПрдХ attr_reader , рд╕рд╛рде рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдПрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓реЗ рдЬрд╛ рд░рд╣реЗ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЗрд╡рд▓ рдлреИрд░рд╛рдбреЗ 1.0 рдореЗрдВ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
рддрдм рддрдХ, рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕рдХреЗ рдЦрд┐рд▓рд╛рдл рд╣реИ рддреЛ рдЗрд╕ рдкрд░ рдлрд┐рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ conn.options рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдЪреАрдЬ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡ conn.get , conn.post , рдЖрджрд┐ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИред рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрдЧрд╛, v1.0 рдЗрд╕реЗ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреЗ рд▓рдХреНрд╖реНрдп рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рд╕рдмрдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╣реИ! рдореИрдВрдиреЗ рдореМрдЬреВрджрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП, рдирдП рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП #options рдХреЛ рдУрд╡рд░рд▓реЛрдб рдХрд░рдХреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред https://github.com/lostisland/faraday/pull/857

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

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

subvertallchris picture subvertallchris  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ioquatix picture ioquatix  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mokolabs picture mokolabs  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mvastola picture mvastola  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yykamei picture yykamei  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ