Savon: рд╕рд╛рдмреБрди рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рддрддреНрд╡

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдорд╛рд░реНрдЪ 2010  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: savonrb/savon

рдирдорд╕реНрддреЗ, рдкрд╣рд▓реЗ рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рддрддреНрд╡реЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдмреБрди рдХрд╛ рд╢рд░реАрд░ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдкрд╕рдВрджред

 <createAccount> 
   <param>[email protected]</param> 
   <key>TextMailbox</key> 
   <param> 
     <subKey key="RealName">John Doe</subKey> 
     <subKey key="Password">soappass</subKey> 
   </param> 
 </createAccount> 

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдкрд░рдо рдХреЛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣реИрд╢ рд╣реИред рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?

-рдЬреЛ

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

рд╣реЗ рдЬреЛ,

рдЖрдк рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд░рдгрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдмрд╣реБрдд рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

{ :key => "TextMailbox",
  :param => [
    "[email protected]",
    { :subKey => ["John Doe", "soappass"]}
  ]
}

рд▓реЗрдХрд┐рди рдЖрдкрдХреЗ рдЙрдкрдХреБрдВрдЬреА рдЯреИрдЧ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЖрдо рддреМрд░ рдкрд░ рд╣реИрд╢ рдорд╛рдиреЛрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

{ :subKey => "John Doe", :attributes! => { :subKey => { :key => "RealName" } } }
# translation: <subKey key="RealName">John Doe</subKey>

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

xml = Builder::XmlMarkup.new
xml.tag! :subKey, { :key => "RealName" }, "John Doe"
xml.tag! :subKey, { :key => "Password" }, "soappass"

{ :key => "TextMailbox",
  :param => [
    "[email protected]",
    xml.target!
  ]
}

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВред рдЖрдк рд╣реИрд╢ рдкрд░ to_soap_xml рдкрд░ рдХреЙрд▓ рдХрд░рдХреЗ рдЗрд╕рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (irb рдЖрдЬрд╝рдорд╛рдПрдВ)ред рдпрд╣ рдПрдХ рдХреЛрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИ рдЬреЛ рд╕реИрд╡рди рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рджреЗрд╡ рд╢рд╛рдЦрд╛ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдорд░реНрдерди: http://github.com/rubiii/savon/commit/e8dd4fea1d8ab4d0d451fdfa254960c9a749b921

рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде, рдЖрдк рдпрд╣ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ:

{ :key => "TextMailbox",
  :param => [
    "[email protected]",
    { :subKey => ["John Doe", "soappass"],
      :attributes! => { :subKey => { :key => ["RealName", "Password"] } } }
  ]
}

рдпрд╣ рдЖрдкрдХреЛ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рдПрдХреНрд╕рдПрдордПрд▓ рджреЗрдЧрд╛ рдЬреИрд╕рд╛ рдЖрдкрдХреЗ рдореВрд▓ рд╕рдВрджреЗрд╢ рдореЗрдВ рд╣реИред

рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг 0.7.6 рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИред рдХреГрдкрдпрд╛ рдЕрджреНрдпрддрди рдХрд░реЗрдВред

+1 @ рд░реБрдмрдИ

рдореБрдЭреЗ рд╕рд░рдгреА рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░рдгреА рдХреЗ рдЕрдВрджрд░ рдлрд┐рд░ рд╕реЗ рдореБрдЭреЗ рд╣реИрд╢ рдорд╛рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ

result = client.call(:sales_order_list, message: {
    sessionId: session.body[:login_response][:login_return], 
    filters: {filter: 
                {
                    item: 
                        {key: 'created_at', value: 
                            {key: 'from', value: '2016-12-27 00:00:00'}
                    }, 
                    item: {key: 'created_at', value: 
                        {key: 'to', value: '2016-12-27 23:59:59'}
                    } 
                }
            }
        })

рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рд╕рд░рдгреА рдХреЗ рдЕрдВрджрд░ рдЖрдЗрдЯрдо рдЕрднреА рднреА рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рд╣реЛ рдЬрд╛рдП, рдореИрдВ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реВрдВ?

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

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

kjg picture kjg  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

obfuscoder picture obfuscoder  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ajrkerr picture ajrkerr  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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