2016-07-21 7 views
0

Ich verwende den Savon-Edelstein, um auf eine SOAP-API zuzugreifen. Die Sache ist, die API erfordert Schlüssel in Großbuchstaben und andere Schlüssel in Kleinbuchstaben, so dass ich die Option convert_request_keys_to Parameter nicht verwenden kann.Rails Savon gem Schlüssel in Groß- und Kleinschreibung

Dies ist das Format der API I erfüllen müssen:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="XmlServices"> 
    <soapenv:Header/> 
    <soapenv:Body> 
    <xs:GetRooms> 
     <xs:request> 
      <xs:Credentials> 
       <xs:Credential1>"example1"</xs:Credential1> 
       <xs:Credential2>"example2"</xs:Credential2> 
       <xs:Credential3>"example3"</xs:Credential3> 
     </xs:Credentials> 
    </xs:request> 
</xs:GetRooms> 

Wie Sie request ist Klein sehen können, und der ganze Rest ist groß geschrieben. Diese

ist, wie ich das Juwel verwenden:

def call(method, attributes = nil) 
    attributes = { 'request': { 'Credentials': attributes } } 
    response = client.call(method, message: attributes) 
    #do something with response 
end 

Bin ich es richtig telefonieren? Gibt es eine Option, die ich vermisse? Muss ich das Repository abzweigen und den Edelstein selbst modifizieren?

Antwort

1

Okay, eigentlich war dies recht einfach:

nur notwendig, um die Option zu verwenden convert_request_keys_to :none

Verwandte Themen