¿Puede alguien dar un ejemplo de cómo publicar XML utilizando HTTParty y Ruby on Rails?
-
04-10-2019 - |
Pregunta
necesito publicar una parte de XML a un servicio web y estoy tratando de utilizar HTTParty. ¿Puede alguien dar un ejemplo de cómo hago para hacerlo?
Este es el formato del XML que deben desplazar a:
<Candidate xmlns="com.mysite/2010/10/10" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<FirstName></FirstName>
<LastName></LastName>
<Email></Email>
<Gender></Gender>
</Candidate>
Esta es mi clase hasta ahora:
require 'httparty'
class Webservice
include HTTParty
format :xml
base_uri 'mysite.com'
default_params :authorization => 'xxxxxxx'
def self.add_candidate(first_name,last_name,email,gender)
post('/test.xml', :body => "")
end
end
No estoy muy seguro de cómo dar cuerpo a add_candidate.
Cualquier ayuda sería apreciada.
Gracias.
Solución
Usted tiene dos opciones. HTTParty le permite publicar tanto una cadena o un hash.
La versión de cadena sería:
post('/test.xml', :body => "<Candidate xmlns=\"com.mysite/2010/10/10\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"><FirstName>#{first_name}</FirstName><LastName>#{last_name}</LastName><Email>#{email}</Email><Gender>#{gender}</Gender></Candidate>")
funcional, pero no bastante. Me gustaría hacer esto en su lugar:
post('/test.xml', :body => {
:Candidate => {
:FirstName => first_name,
:LastName => last_name,
:Email => email,
:Gender => gender,
}
}
Ahora, no puedo decir con seguridad si los espacios de nombres son requeridos por el punto final, y si es así, si la versión de hash funcionarán. Si ese es el caso, es posible que tenga que ir con hacer el cuerpo como una cadena.