Symfoware

Symfowareについての考察blog

RubyからREST API経由でRedmineにコメントを登録する(XML,JSON使用)

Pythonでやってみたことを、Rubyでやってみます。
PythonからREST API経由でRedmineにコメントを登録する(XML,JSON使用)

Rubyによるチケット登録はこちら。
RubyからREST API経由でRedmineにチケットを登録する(XML,JSON使用)
RubyからREST API経由でRedmineに添付ファイルを登録する(XML,JSON使用)



XMLによる登録



XMLを使用してコメントを追加するサンプルはこんな感じになりました。
案件の登録は「Post」でしたが、コメント追加は「Put」メソッドになります。


  1. # -*- coding : utf-8 -*-
  2. require 'net/http'
  3. require 'uri'
  4. # 個人設定画面に表示されているAPIキー
  5. api_key = 'ea87faaba9549b5fdbea7655bf7de323cd6c118e'
  6. # コメント追加用のXMLデータを作成
  7. xml = <<XML
  8. <issue>
  9.     <notes>XMLでコメント追加</notes>
  10. </issue>
  11. XML
  12. # APIのURL
  13. # URLにはissues/[コメントを追加したいチケットの番号].xmlを指定
  14. # methodはput
  15. # 今回、RedmineのURLはhttp://192.168.1.102/redmine/
  16. # サブディレクトリで公開している
  17. uri = URI.parse("http://192.168.1.102/redmine/issues/13.xml")
  18. Net::HTTP.start(uri.host, uri.port) do |http|
  19.     #リクエストインスタンス生成
  20.     request = Net::HTTP::Put.new(uri.path)
  21.     #ヘッダー部
  22.     request.set_content_type("text/xml")
  23.     request["X-Redmine-API-Key"] = api_key
  24.     
  25.     #ボディ部
  26.     request.body = xml
  27.     
  28.     #送信
  29.     response = http.request(request)
  30.     #puts response.body
  31. end








JSONによる登録



JSONによる登録はこんな感じになりました。


  1. # -*- coding : utf-8 -*-
  2. require 'net/http'
  3. require 'uri'
  4. require 'json'
  5. # 個人設定画面に表示されているAPIキー
  6. api_key = 'ea87faaba9549b5fdbea7655bf7de323cd6c118e'
  7. # 登録用のデータ
  8. data = {}
  9. issue = {}
  10. issue['notes'] = 'JSONでコメント追加'
  11. data['issue'] = issue
  12. # 連想配列からJSONな文字列に変換
  13. issue_json = JSON.generate(data)
  14. # APIのURL
  15. # URLにはissues/[コメントを追加したいチケットの番号].jsonを指定
  16. # methodはput
  17. # 今回、RedmineのURLはhttp://192.168.1.102/redmine/
  18. # サブディレクトリで公開している
  19. uri = URI.parse("http://192.168.1.102/redmine/issues/13.json")
  20. Net::HTTP.start(uri.host, uri.port) do |http|
  21.     #リクエストインスタンス生成
  22.     request = Net::HTTP::Put.new(uri.path)
  23.     #ヘッダー部
  24.     request.set_content_type("application/json")
  25.     request["X-Redmine-API-Key"] = api_key
  26.     
  27.     #ボディ部
  28.     request.body = issue_json
  29.     
  30.     #送信
  31.     response = http.request(request)
  32.     #ret = JSON.parse(response.body)
  33.     #puts ret['errors']
  34. end




XML、JSON共に登録できています。

380_01.png

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/03/21(金) 15:04:08|
  2. 備忘録
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<メールの内容をRedmineに転記するプログラムをRubyで作成する | ホーム | RubyからREST API経由でRedmineに添付ファイルを登録する(XML,JSON使用)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1360-d60726e4
この記事にトラックバックする(FC2ブログユーザー)