Quantcast
Channel: けんさんのIT知識
Viewing all articles
Browse latest Browse all 22

RedmineのAPIでチケットを操作してみた。

$
0
0

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が返ります。


Viewing all articles
Browse latest Browse all 22

Trending Articles