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 での例]
- http://www.redmine.org/issues/6954?format=xml&include=relations,attachments (関連チケット、添付ファイル込み)
- http://www.redmine.org/issues/6954?format=xml&include=relations,attachments,journals (履歴も込み)
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 と設定して取得したほうが良いかもしれませんね。
コメント
コメントを投稿