http://www.redmine.org/projects/redmine/wiki/Rest_api
というわけで今回はRedmineのAPIを使ってみたいと思います
■概要
チケットの一覧を取得して、チケットのID一覧をテキストファイルに出力します■設定
RedmineでAPIを使うには設定が必要ですオグインした状態で管理→設定→認証と進み「RESTによるWebサービスを有効にする」にチェックをつけます
その後右上の個人設定のリンクに進むと右のメニューバーらしきところにAPIアクセスキーが出現しているので、表示を押下しアクセスキーを取得しておきましょう
またポートは3000番でアクセスするので、APIを実行するサーバからRedmineサーバへは3000番を許可しておきましょう
両方共Redmine上であるならば特に必要なないと思われます
■ソースコード
require 'net/http'
require 'rexml/document'
request = "http://hostname:3000/issues.xml?key=accessKey"; # =>先ほど取得したキーとRedmineサーバのホスト名またはIPアドレスを入力してください
def getXML(request)
  url = URI.parse(request);
  req = Net::HTTP::Get.new(url.path);
  res = Net::HTTP.start(url.host, url.port) {|http|
    http.request(req);
  }
  return res.body;
end
def parseXML(xml)
  doc = REXML::Document.new xml;
  File.open('result.txt','w'){|f|
    doc.elements.each("*/issue/id") {|element|
      f.puts(element.get_text);
    }
  }
end
xml = getXML(request);
parseXML(xml);
適当にファイル名を設定しrubyで実行するとresult.txtというファイルの中に番号のリストが記載されているはずです
doc.elements.each("*/issue/id")で実際のデータを取得しているので、この値を変更すれば取得できるXMLの値も簡単に変更できます
お試しあれ
 
0 件のコメント:
コメントを投稿