Может кто-нибудь предоставить пример для того, как опубликовать XML, используя httparty и Ruby на рельсах?
-
04-10-2019 - |
Вопрос
Мне нужно опубликовать XML к веб-сервису, и я пытаюсь использовать httparty. Может кто-нибудь предоставить пример относительно того, как я иду по этому поводу?
Вот формат XML, мне нужно опубликовать:
<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>
Вот мой класс до сих пор:
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
Я не совсем уверен, как набрать add_candidate.
Любая помощь будет оценена.
Спасибо.
Решение
У вас есть два варианта. Httparty позволяет публиковать как строку, либо хеш.
Струнная версия будет:
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>")
Функционал, но не красиво. Я бы сделал это вместо этого:
post('/test.xml', :body => {
:Candidate => {
:FirstName => first_name,
:LastName => last_name,
:Email => email,
:Gender => gender,
}
}
Теперь я не могу сказать, наверняка, требуется ли пространства имен к конечной точке, и если да, то будет ли работать Hash Version. Если это так, вам, возможно, придется пойти с телом в виде строки.
Не связан с StackOverflow