_рдПрдирдмреА: рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп faraday_middleware
ред рдЪреВрдВрдХрд┐ рдЗрд╕рдореЗрдВ рджреЛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдерд╛ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдПред_
рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рддреЗ рд╕рдордп, рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ) рдорд┐рдбрд▓рд╡реЗрдпрд░ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдЪрд▓реЗрдЧрд╛ рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдпрд╣ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬрдм рдХреЛрдИ рдЕрдиреБрд░реЛрдз рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдореИрдВ :json
рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж :retry
рдорд┐рдбрд▓рд╡реЗрдпрд░, env.body
рдХреЛ :retry
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ :retry_if
рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореБрдЭреЗ :retry_if
рдмреНрд▓реЙрдХ рдХреЛ JSON
-рдбрд┐рдХреЛрдбреЗрдб рд╕рдВрджреЗрд╢ рдкрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреБрд░реЛрдз рд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ JSON рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╡рд┐рдХрд▓реНрдк рдЗрд╕реЗ retry_if
рдореЗрдВ рджреВрд╕рд░реА рдмрд╛рд░ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реИ
<strong i="23">@_client</strong> ||= Faraday.new(url: ROOT_URL) do |f|
f.options[:timeout] = 10
f.headers['Content-Type'] = 'application/json'
f.use :instrumentation, name: INSTRUMENTATION_EVENT_NAME
f.response :json, content_type: /\bjson$/
f.request :retry, FARADAY_RETRY_OPTIONS
end
рдиреЛрдЯ: рдпрджрд┐ рдореИрдВ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ f.instance_variable_get :@handlers
рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕ рдХреНрд░рдо рдореЗрдВ рдореИрдВрдиреЗ рдЗрд╕реЗ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛ред
рдЬрдм рдХреЛрдИ рдЕрдиреБрд░реЛрдз рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ :retry
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ :retry_if
рдмреНрд▓реЙрдХ рдореЗрдВ рдЗрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдирд┐рдореНрди рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд▓рддрд╛ рд╣реИ:
(byebug) environment.response.to_hash.without(:url)
{:status=>405, :body=>"{\"message\": \"The method is not allowed for the requested URL.\"}\n", :response_headers=>{"date"=>"Fri, 23 Apr 2021 18:17:16 GMT", "content-type"=>"application/json", "content-length"=>"64", "connection"=>"keep-alive", "server"=>"gunicorn", "allow"=>"HEAD, OPTIONS, GET"}}
(byebug) environment.response.body
"{\"message\": \"The method is not allowed for the requested URL.\"}\n"
(byebug) environment.response.body.class
String
рдореВрд▓ рд░реВрдк рд╕реЗ, рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкрд╣рд▓реЗ рдЪрд▓рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
JSON рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ Content-Type
рд╣реЗрдбрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╕реНрдЯрдореНрдкреНрдб рд╣реВрдВред
рдореЗрд░рд╛ рдПрдХрдорд╛рддреНрд░ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ #response
рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╣рдореЗрд╢рд╛ #request
рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ retry
рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ #request
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдПрдХ рдорд┐рдереНрдпрд╛ рдирд╛рдо рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЕрджреНрдпрддрди рдХрд░реЗрдВ: рдореИрдВрдиреЗ рд╕рдЪрдореБрдЪ рдХрдиреЗрдХреНрд╢рди рдХреЙрдиреНрдлрд┐рдЧ рдмреНрд▓реЙрдХ рдореЗрдВ рджреЛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рдХреНрд░рдо рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдпрд╛ (рдпрд╣ рд╕реЛрдЪрддреЗ рд╣реБрдП рдХрд┐ "рдпрд╣ рд╕рдВрднрд╡рддрдГ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛") рдФрд░ рдЕрдм рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдЫреЛрдбрд╝рдирд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдмрдЧ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдмреЗрд╣рддрд░ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП)ред
рд╣рд╛рдп @mvastola , рдЖрдк рдЬреЛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ!
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЛ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓реЗ рдЬрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╕реНрдЯреИрдХ рдХреА рдкреНрд░рдХреГрддрд┐ рд░реИрдХ рд╕реНрдЯреИрдХ рдХреЗ рд╕рдорд╛рди рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрдЯреЗ рдХреНрд░рдо рдореЗрдВ рдЯреНрд░реИрд╡рд░реНрд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ
рдЗрд╕рд▓рд┐рдП рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ ЁЯЩМ! :json
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ :retry
рдПрдХ рдХреЗ рдмрд╛рдж рд▓реЗ рдЬрд╛рдХрд░, рдЖрдк рдкрд╣рд▓реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдФрд░ :retry
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмреЙрдбреА рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рджреЗрдЧрд╛ред
рдореИрдВ рдЗрд╕реЗ рдЕрднреА рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдХреЛрдИ рдФрд░ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдлреЙрд▓реЛ-рдЕрдк рдХрд░реЗрдВ
рддреНрд╡рд░рд┐рдд, рджрдпрд╛рд▓реБ рдФрд░ рдЧрд╣рди рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕реЗ рд╕рдордЭрдирд╛ рдЗрддрдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдирдкреЗрдХреНрд╖рд┐рдд рд╣реИред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрдо рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЛ рджреЗрдЦрд╛ рдерд╛, рдФрд░ рдЗрд╕рд╕реЗ рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред (рдореИрдВрдиреЗ рддрд╕реНрд╡реАрд░ рдФрд░ "рдЕрдВрддрд░рддрдо" рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╛рдорд╛рди рджреЗрдЦрд╛, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдХреА рдереА рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдСрд░реНрдбрд░ рдХреЛ рдЙрд▓рдЯрдирд╛ рдерд╛ред)
рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдЪрд┐рддреНрд░ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рдЖрдВрддрд░рд┐рдХ рднрд╛рдЧ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реАрдкреВрд░реНрдг рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рджреГрд╢реНрдп рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде рдЗрд╕рдХреА рддрд╛рд░реАрдл рдХрд░рдиреЗ рдореЗрдВ рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЙрдиреНрдлрд┐рдЧ рдмреНрд▓реЙрдХ рдореЗрдВ рдСрд░реНрдбрд░ рд░рди рдСрд░реНрдбрд░ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╡рд┐рд╡рд░рдг рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдЕрдирдЬрд╛рди рдмрдирд╛рддрд╛ рд╣реИ:
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП faraday
рдореЗрдВ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрд╛рд░реНрдп рд╣реИрдВ, рдФрд░ рд╡реЗ рд╡рд┐рдирд┐рдореЗрдп рдирд╣реАрдВ рд╣реИрдВ: рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ рдЯреБрдХрдбрд╝рд╛ рдХреЗрд╡рд▓ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╕реНрдЯреИрдХ (рдпрд╛ рдСрд░реНрдбрд░рд┐рдВрдЧ) рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рдпреЗ рддреАрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдо/рд╕рдореВрд╣ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВ рдпрд╣ рдмрд╣реБрдд рдЕрд╕реНрдкрд╖реНрдЯ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЪреВрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдЕрдиреБрд░реЛрдз рдХреЗ рджреЛрдиреЛрдВ рд╕рд┐рд░реЛрдВ рдкрд░ _not_ рдЪрд▓рддрд╛ рд╣реИ-> рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд╛рд░реНрдЧ, рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ "рдЕрдиреБрд░реЛрдз" рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╣рдореЗрд╢рд╛ "рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛" рд╕реЗ рдкрд╣рд▓реЗ рдорд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реЛрдЧрд╛ред рд╕рдВрдмрдВрдзрд┐рдд рдЪреАрдЬреЗрдВред
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░реИрдХ рдХреАрд╡рд░реНрдб, use
, рдлреИрд░рд╛рдбреЗ рдореЗрдВ рдХреЗрд╡рд▓ рдЙрд╕ рддрд░рд╣ рдХреЗ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдмрддрд╛ рд╕рдХрддрд╛ рд╣реВрдВ) - рдорд┐рдбрд▓рд╡реЗрдпрд░ рдЬреЛ рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЛрдиреЛрдВ рдХреЛ рд▓рдкреЗрдЯрддрд╛ рд╣реИред
рд╡реИрд╕реЗ рднреА рдЕрдЧрд░ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреЛ рдЯреНрд╡реАрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕реЛрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛ рд░рд╣реА рд╣реИред рдЕрдиреНрдпрдерд╛ рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ рдпрд╣ рдЕрднреА рдорд┐рд▓рддрд╛ рд╣реИред рдореИрдВ рдпрд╣ рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдпрд╣рд╛рдВ рд╕рдорд╛рди рднреНрд░рдо рд╕реЗ рдкреАрдбрд╝рд┐рдд рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред
рдзрдиреНрдпрд╡рд╛рдж @mvastola , рдпрд╣ рдЕрдореВрд▓реНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИ ЁЯЩП!
рдФрд░ рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╣реАрдВ рд╣реИ рдЬрдм рдореИрдВрдиреЗ рдЗрди рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИред
рдЬрдм рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рд╣рдо рдмрд╣реБрдд рджреВрд░ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдпреЛрдЧрджрд╛рди рдХрд╛ рдмрд╣реБрдд рд╕реНрд╡рд╛рдЧрдд рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╣рд╛рд▓рд┐рдпрд╛ рдЪрд░реНрдЪрд╛ рдзрд╛рдЧрд╛ рд╣реИ!)
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдмрд┐рдВрджреБ рднреА рдмрд╣реБрдд рдорд╛рдиреНрдп рд╣реИрдВ, рдореБрдЭреЗ рдХреЗрд╡рд▓ рдпрд╣ рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ request
, response
рдФрд░ use
рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рднреНрд░рдо рдХрдИ рдмрд╛рд░ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдХрд┐ рдореИрдВ рд╣реВрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЗрд╡рд▓ use
рд╣реЛрдиреЗ рдХреЗ рдкрдХреНрд╖ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдЫреЛрдбрд╝рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝рдХрд░ рдХрд┐ рд╡реЗ рдЕрдиреБрд░реЛрдз/рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХреНрдпрд╛/рдХрдм рд╣реЗрд░рдлреЗрд░ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рдкреАрдЖрд░ рдХреЛ рдЙрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдзрдХреНрдХрд╛ рди рджреЗрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдореБрджрд╛рдп рдХреЛ рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЦреБрд▓реЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣рд╛рдп @mvastola , рдЖрдк рдЬреЛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ!
рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЛ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓реЗ рдЬрд╛рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╕реНрдЯреИрдХ рдХреА рдкреНрд░рдХреГрддрд┐ рд░реИрдХ рд╕реНрдЯреИрдХ рдХреЗ рд╕рдорд╛рди рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрд▓реНрдЯреЗ рдХреНрд░рдо рдореЗрдВ рдЯреНрд░реИрд╡рд░реНрд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд╣рдорд╛рд░реА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдореЗрдВ
рдЗрд╕рд▓рд┐рдП рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ ЁЯЩМ!
:json
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЛ:retry
рдПрдХ рдХреЗ рдмрд╛рдж рд▓реЗ рдЬрд╛рдХрд░, рдЖрдк рдкрд╣рд▓реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдФрд░:retry
рдорд┐рдбрд▓рд╡реЗрдпрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмреЙрдбреА рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░ рджреЗрдЧрд╛редрдореИрдВ рдЗрд╕реЗ рдЕрднреА рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдХреЛрдИ рдФрд░ рдкреНрд░рд╢реНрди рд╣реИрдВ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдлреЙрд▓реЛ-рдЕрдк рдХрд░реЗрдВ