Symfoware

Symfowareについての考察blog

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

PythonからRedmineのREST APIを触ってみています。
PythonからREST API経由でRedmineにチケットを登録する(XML,JSON使用)
PythonからREST API経由でRedmineに添付ファイルを登録する(XML,JSON使用)

今回はチケットにコメントを追加してみます。



XMLでコメント追加



こちらの「Updating an issue」を参考にしました。
http://www.redmine.org/projects/redmine/wiki/Rest_Issues


サンプルはこんな感じです。


  1. # -*- coding:utf-8 -*-
  2. import urllib2
  3. import xml.etree.ElementTree
  4. # 個人設定画面に表示されているAPIキー
  5. api_key = 'ea87faaba9549b5fdbea7655bf7de323cd6c118e'
  6. # 追加するコメント(note)
  7. xml_note = """<?xml version="1.0"?>
  8. <issue>
  9. <notes>XMLでコメント追加</notes>
  10. </issue>"""
  11. # URLにはissues/[コメントを追加したいチケットの番号].xmlを指定
  12. # methodはput
  13. url = 'http://192.168.1.102/redmine/issues/5.xml'
  14. request = urllib2.Request(url, data=xml_note)
  15. request.add_header('Content-Type', 'text/xml')
  16. request.add_header('X-Redmine-API-Key', api_key)
  17. request.get_method = lambda: 'PUT'
  18. # コメントの追加実行
  19. response = urllib2.urlopen(request)
  20. ret = response.read()
  21. print(ret)



note追加時にはレスポンスは無いようです。




JSONでコメント追加



JSONを使用する場合もほぼ同様の内容です。


  1. # -*- coding:utf-8 -*-
  2. import urllib2
  3. import json
  4. # 個人設定画面に表示されているAPIキー
  5. api_key = 'ea87faaba9549b5fdbea7655bf7de323cd6c118e'
  6. # コメントデータ
  7. issue = {}
  8. issue[u'notes'] = u'JSONでコメント追加'
  9. data = {}
  10. data[u'issue'] = issue
  11. # JSON形式の文字列を取得
  12. jsonstr = json.dumps(data)
  13. # APIのURL
  14. # issues/[コメントを登録したいチケットのID].jsonを指定
  15. url = 'http://192.168.1.102/redmine/issues/5.json'
  16. # Content-Type:application/json
  17. # X-Redmine-API-Key:[APIキー]
  18. # method:put
  19. request = urllib2.Request(url, data=jsonstr)
  20. request.add_header('Content-Type', 'application/json')
  21. request.add_header('X-Redmine-API-Key', api_key)
  22. request.get_method = lambda: 'PUT'
  23. # 登録実行
  24. response = urllib2.urlopen(request)
  25. ret = response.read()
  26. print 'Response:', ret




こちらも登録時のレスポンスはありません。


XML、JSONからちゃんと登録出来ました。

360_01.png

関連記事

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

  1. 2014/03/09(日) 16:23:05|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Python urllib2で、サーバーエラー時のレスポンスボディを取得する | ホーム | PythonからREST API経由でRedmineに添付ファイルを登録する(XML,JSON使用)>>

コメント

コメントの投稿


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

トラックバック

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