Веб-сервис REST в Rails 3.x - PullRequest
       15

Веб-сервис REST в Rails 3.x

0 голосов
/ 16 января 2012

У меня есть приложение Rails (3.x), которое я пытаюсь связать с настольным приложением (C # .net) через API веб-службы REST.

Мне удалось реализовать все запросы GET, и все они работают нормально,

Тогда у меня есть это требование для отправки сообщений в мой контроллер Rails. Поскольку я разрабатываю приложение для ресторана, мой метод POST будет примерно таким:

<bill>
  <user_id>1</user_id>
  <table>Table1</table>
  <items>
    <item>
     <name>BEER</name>
     <price>200</price>
    </item>
    <item>
     <name>BREAD</name>
     <price>10</price>
    </item>
  </items>
</bill>

Как видите, этот <items> </items> будет циклом отдельных <item></item> элементов, и может быть число n item элементов

.

У меня вопрос: я смогу создать такого рода xml и отправить его на контроллер Rails.

Но как я мог прочитать значения с контроллера?

Полагаю, я мог бы прочитать часть заголовка как

user_id = params[:bill][:user_id]
table = params[:bill][:table]

Но я не уверен, как читать элементы <items>. Я работаю на Rails 3.x.

1 Ответ

0 голосов
/ 16 января 2012

Я бы попытался использовать Nokogiri::XML и, следовательно, получить представление вашего xml в виде объекта ruby, которое затем будет легко доступно.

# your xml lives in params['body']
body = Nokogiri::XML::DocumentFragment.parse(params['body']) 
body.at("items").children.each do |item|
    #code goes here
end

Подробнее о nokogiri и его возможностях синтаксического анализа xml здесь: http://nokogiri.org/Nokogiri/XML/NodeSet.html

...