読者です 読者をやめる 読者になる 読者になる

RubyでWebAPIのレスポンスにXMLを出力するいい方法ないかなぁ

RubySinatra を使って Web API を作るとき、レスポンスの XML は erb を使って出力しています。

例えば

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Items>
    <% @items.each do |item| %>
      <Item>
        <Id><%= h item.id %></Id>
        <Name><%= h item.name %></Name>
      </Item>
    <% end %>
  </Items>
</Response>

こんな感じのテンプレートを用意。

そして

get '/items/' do
  # DataMapper あたりを使ってデータを取得
  @items = Item.all()
  
  # ContentType を指定
  content_type "text/xml", :charset => "utf8"

  # XML のテンプレートを記述した erb ファイルを指定
  erb :response
end

Sinatra からは erb ファイルを指定。

他にいい方法ありそうだけど…

頭が煮えていて、思い付きません><
便利なライブラリないかなぁ。