Ruby で Sinatra を使って 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 ファイルを指定。
他にいい方法ありそうだけど…
頭が煮えていて、思い付きません><
便利なライブラリないかなぁ。