Como consumir hotel.de API com ruby

Recentemente tive que acessar o serviço web xml de hotel.de o que causou muita dor de cabeça devido a poucos documentos de documentação.

Portanto, em primeiro lugar, foi difícil encontrar uma documentação sobre o serviço em si. Aqui está.
http://www.hotel.de/media/downloads_public/hotelde_FreeHotelSearchWebService_V2_8.pdf

Para as especificações do serviço, você pode querer dar uma olhada em um visualizador wsdl:

http://services.w3.org/xslt?xslfile=http://tomi.vanek.sk/xml/wsdl-viewer.xsl&xmlfile=http://publicbetawebservices.hotel.de/V2_8/FreeHotelSearchWebService.svc? WSDL & amp; transform = Enviar # op.d3e64

Como eu não queria criar um consumidor de API auto-escrito, decidi seguir em frente usando o savon gem (versão 2) http://savonrb.com/ .

Aqui está meu construtor para fazer o cliente funcionar

 @client = Savon.client(
wsdl
: "http://publicbetawebservices.hotel.de/V2_8/FreeHotelSearchWebService_ServiceContract.wsdl",
endpoint
: "http://publicbetawebservices.hotel.de/V2_8/FreeHotelSearchWebService.svc?WSDL",
namespace_identifier
: :v2,
env_namespace
: :soapenv,
pretty_print_xml
: true ,
log_level
: :debug ,
log
: true,
)


@client.operations

lhe dará uma visão geral dos métodos disponíveis.

uma vez que os elementos filho no corpo do envelope soap não herdam o identificador de namespace que você pode querer usar nil

namespace_identifier: nil