2012-03-14

Redmine REST API - 関連チケット、添付ファイル込み

あるチケットに関するPDF、添付ファイルと、同様に関連するチケットのPDF、添付ファイルをまとめて取得したいんだけど…みたいなリクエストを、ユーザさんからいただきました。

できれば、ボタン1つとか、コマンド1発で…(^^;

いろんな方法があるかと思いますが、思い浮かんだのはREST APIを使ってひたすらGETするのが良いかなあ、ということ。
RESTの機能もいろいろサポートされて来ているので、確認の意味でちょっとまとめます。

* * *

1. チケットのPDFをRESTで取ってくる
  • http://REDMINE_URL/issues/チケット番号.pdf?key=APIキー
2. チケットIDを指定し、添付ファイルと関連チケット情報込みのデータを取得する

チケットの基本のREST APIに include というパラメータをくっつけると、添付ファイル、関連チケット情報込みでデータが引っ張れます。journals をくっつけると、経過もくっつけます。

  • http://REDMINE_URL/issues/チケット番号?format=xml&include=relations,attachments&key=APIキー

[Redmine.org での例]

attachments 込みだと、下記のように、<content_url/>に添付ファイルの取得用のURLがくっついてきます。ここからダウンロードすれば良さそうかな?

<content_url>
http://www.redmine.org/attachments/download/6260/date_range_filter.png
</content_url
>

3. 関連チケット(だけ)を取得するURL

関連チケット『のみ』引っ張りたい場合はこちら。

  • http://REDMINE_URL/issues/チケット番号/relations?key=APIキー&format=xml (XMLの場合)
  • http://REDMINE_URL/issues/チケット番号/relations?key=APIキー&format=json (JSONの場合)

結果のXMLはこんな感じです。

<relations type="array">
<relation>
<id>7850</id>
<issue_id>197xx</issue_id>
<issue_to_id>73xx</issue_to_id>
<relation_type>relates</relation_type>
<delay/>
</relation>
<relation>
<id>7856</id>
<issue_id>19xxx</issue_id>
<issue_to_id>197xx</issue_to_id>
<relation_type>relates</relation_type>
<delay/>
</relation>
</relations>
チケット本体に include=relations と設定して取得したほうが良いかもしれませんね。
 

0 件のコメント:

コメントを投稿