RedmineのREST APIをつかってRedmineに対してチケットを登録してみました。
RESTClientとしては、お手軽に使える
rest-client のUI版( http://code.google.com/p/rest-client/ ) を使用します。
あらかじめ、認証に必要なAPIキー(apikey)を個人設定画面から取得しておきます。
チケットの登録
通常のチケット登録は以下のような感じです。
RequestURI
POST /issues?key=apikey
Header
Content-type: text/xml
Body
<issue> <project_id>1</project_id> <subject>TEST</subject> </issue>
成功するとステータスコードとして201が返り、
ResponseBodyに登録された内容が入ります。
idタグにチケットIDが入ります。
チケット登録時(添付ファイル付)
チケット登録時に添付ファイルも一緒に登録する場合は、
1) ファイルをアップロード
2) チケットを登録
の2段階になります。
1) まずファイルのアップロードをします。
RequestURI
POST /uploads.xml?key=apikey
Header
Content-type: application/octet-stream
Body
添付ファイルのバイトデータ
成功するとステータスコードとして201が返り、
tokenタグにtoken(token)が返ってきます。
2) 次にチケットの登録をします。
先ほど取得したtokenをセットすることでチケットとファイルの紐付けを行います。
RequestURI
POST /issues?key=apikey
Header
Content-type: text/xml
Body
<issue> <project_id>1</project_id> <subject>TEST</subject> <uploads type="array"> <upload> <token>token</token> <filename>abc.txt</filename> <description>None</description> <content_type>text/plain</content_type> </upload> </uploads> </issue>
成功するとステータスコードとして201が返り、
ResponseBodyに登録された内容が入ります。
idタグにチケットIDが入ります。
チケットの更新
RequestURI
PUT /issues/ticketid?key=apikey
Header
Content-type: text/xml
Body
<issue> <subject>TEST Modified</subject> </issue>
Body部については更新したい箇所の記述します。
成功するとステータスコードとして200が返ります。
チケット更新時(添付ファイル付)
チケット更新時に添付ファイルも一緒に登録する場合は、
1) ファイルをアップロード
2) チケットを更新
の2段階になります。
1) の手順は登録時と同じです。
2) は以下になります。
RequestURI
PUT /issues/ticketid?key=apikey
Header
Content-type: text/xml
Body
<issue> <subject>TEST Modified</subject> <uploads type="array"> <upload> <token>token</token> <filename>def.txt</filename> <description>None</description> <content_type>text/plain</content_type> </upload> </uploads> </issue>
Body部については更新したい箇所の記述するのは同じです。
成功するとステータスコードとして200が返ります。