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 件のコメント:
コメントを投稿