RedmineのREST APIは素晴らしい~ビッグデータの手法をRedmineにも活用する
RedmineのREST APIを実際に試してみたら、とても素晴らしい。
分かったことをメモ書き。
【元ネタ】
Rest api - Redmine
コマンドラインとブラウザで JSON API を手軽に試す | COLOPL Engineers' Blog | 株式会社コロプラ【スマートフォンゲーム&位置ゲー】
RedmineのREST APIを使ってみる | 『世界』はあまりにも広い
Redmine REST API の翻訳 | プログラマーズ雑記帳
【1】RESTはマッシュアップというWebサービスの一つ。
REST APIを使えば、Redmineからチケットの情報だけでなく、プロジェクトやユーザ、果てはWikiまでHTTP経由で取得できる。
RedmineのREST APIの内容を見ると、GETメソッドだけでなく、POST・PUT・DELETEもサポートしているようだ。
また、取得結果はXMLだけでなく、JSONにも対応している。
つまり、JavaScriptで操作したいなら、JSONの方が楽だろう。
RestAPIを使うには、Redmine REST API - r-labsのように、システム管理画面でAPIを有効にした後、個人設定画面でAPIキーを取得すればいい。
そのAPIキーをリクエストに含めてHTTP接続すれば、欲しいチケット情報を取得できる。
ブラウザ上でRESTを試すには、Firefox RESTClientやChromeのAdvanced REST clientを使えば良い。
URLを設定するだけで、GETやPOSTを実行できる。
藤原さんがBlogに書かれているように、Java製のRESTClientもあるので、ローカルPC上で試すこともできる。
Rest api - Redmineによれば、下記のURLにAPIキーをセットすれば、以下のURLでデータを取得できる。
Firefox RESTClientからPOSTして、データを登録してもいい。
# 全チケットを一覧表示
http://localhost:3000/issues.xml?key=XXXX
# チケット番号2の情報を表示(カスタムフィールドも含む)
http://localhost:3000/issues/2.xml?key=XXXX
# プロジェクトID=2の全チケット一覧を表示
http://localhost:3000/issues.xml?project_id=2&key=XXXX
# 全プロジェクトを一覧表示
http://localhost:3000/projects.xml?key=XXXX
# プロジェクトID=2のメンバーを一覧表示
http://localhost:3000/projects/2/memberships.xml?key=XXXX
#全ユーザ一覧を表示
http://localhost:3000/users.xml?key=XXXX
# 実績工数のすべての履歴を表示
http://localhost:3000/time_entries.xml?key=XXXX
# チケット番号8470の関連チケットを表示
http://localhost:3000/issues/8470/relations.xml?key=XXXX
# fooプロジェクトの全バージョンを表示
http://localhost:3000/projects/foo/versions.xml?key=XXXX
# Wiki名「マニュアル」のWiki内容を表示(日本語名もOK)
http://localhost:3000/projects/foo/wiki/マニュアル.xml?key=XXXX
# カスタムクエリを一覧表示
http://localhost:3000/queries.xml?key=XXXX
# システム管理画面で作成した全ステータスを一覧表示
http://localhost:3000/issue_statuses.xml?key=XXXX
# システム管理画面で作成した全トラッカーを一覧表示
http://localhost:3000/trackers.xml?key=XXXX
# システム管理画面で作成した全ての優先度を一覧表示
http://localhost:3000/enumerations/issue_priorities.xml?key=XXXX
# システム管理画面で作成した全ての作業分類を一覧表示
http://localhost:3000/enumerations/time_entry_activities.xml?key=XXXX
# プロジェクトID=2のカテゴリを一覧表示
http://localhost:3000/projects/2/issue_categories.xml?key=XXXX
# システム管理画面で作成した全てのロールを一覧表示
http://localhost:3000/roles.xml?key=XXXX
# システム管理画面で作成した全てのユーザグループを一覧表示
http://localhost:3000/groups.xml?key=XXXX
上記のGETメソッドを見れば分かるように、Redmineにある殆どすべての情報をHTTPレスポンスで取得できる。
このレベルまで対応したOSSのツールはあまりないのではないだろうか?
【3】RestAPIの使い道としては、スマートフォンなどの他のデバイスでRedmineを操作したい時や、他システムと連携してRedmineにある開発プロジェクトの進捗や品質に関する情報を取り込む時があげられるだろう。
前者の場合は、RedminePMのように、iPhoneやAndroid上でRedmineチケットを操作できる。
外出先でRedmineをちょっと見たい時に便利だ。
あるいは、Windows上に、メールソフトのようなリッチクライアントを作って、Redmineチケットの一覧を表示したり、チケットを一括更新できるような機能を作ってもいい。
後者の場合は、例えば、原価管理システムへRedmineチケットの予定・実績工数を取り込むことで、原価計算することも可能だ。
あるいは、Redmineのチケット情報を夜間バッチで取り込んだ後に、多種多様なメトリクスを日次で蓄積して、時系列で分析するやり方も可能だ。
つまり、経営者に日々の売上や月次のPL/BSを報告して経営判断に使うように、Redmineにある開発プロジェクトの情報を取り込んで、日次・月次のタイミングで進捗や品質に関するメトリクスを出力して、プロジェクト管理の強化に役立てることもできるはず。
【4】RestAPIが有効である理由は、Redmineのようにシステムに有用な情報が蓄積されていることが前提条件だ。
システムに蓄積されたデータが少なかったり、そもそも扱いづらいデータ構造ならば、RestAPIで提供してもあまり意味が無い。
逆に言えば、有用な情報を蓄積したシステムは、RestAPIのように外部の利害関係者へAPIを公開すれば、そのAPIでWebサービスをマッシュアップしてもらうことで、ビジネスチャンスが生まれる。
例えば、下記のマッシュアップ情報一覧サービスサイトを見ると、GoogleやTwitterやAmazonだけでなく、食べログやリクナビ、楽天、天気情報、書籍レビュー、ゲームレビューなどのAPIも公開されているらしい。
ワッフル/WAFL|みんなで作るWeb API&マッシュアップ情報一覧サービスサイト
マッシュアップの対象として、Googleマップだけでなく食べログの情報も組み合わせたWebサービスを作ったら、面白いのではないだろうか?
また、天気予報APIでは、気温や降雨量の情報を取得して、コンビニの商品の売れ筋傾向を見ることもできる。
あるいは、湿度情報・花粉情報・ビール指数・アイスクリーム指数・素肌乾燥指数などを組み合わせて、医療品やビール、アイスクリームなどの商品を売るタイミングを見つけ出すというWebサービスもありうるだろう。
最近はビッグデータ活用と言われるが、これらの情報を組み合わせて、予期しない事象を見出すというクラスタ分析も簡単になった。
アルゴリズムは既にあり、HadoopやMauhtのようなレコメンドエンジンもあるのだから、アイデアとプログラミング能力さえあれば、いくらでも新しいビジネスを創出する可能性がある。
オープンソースのレコメンドエンジンMahout: プログラマの思索
Redmineにもビッグデータを活用できる可能性が秘められていると思う。
| 固定リンク
「ビジネス・歴史・経営・法律」カテゴリの記事
- ビジネス書の名著はどれ?(2023.09.18)
- 営業は顧客の”購買代理人”である(2023.08.16)
- 第85回IT勉強宴会の感想~概念データモデルからビジネスモデルを構築すべきという考え方(2023.05.13)
- 令和4年度春期試験のITストラテジスト試験第4問をastahでモデル化してみた(2023.04.15)
- ChatGPTで起きている事象の意味は何なのか(2023.04.02)
「Redmine」カテゴリの記事
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- 「RedmineのUbuntu+Docker構築への移行」の感想 #redmineT(2024.11.24)
- 第27回redmine.tokyo勉強会の感想 #redmineT(2024.11.10)
- Redmineのバージョン設定でプロジェクトの設定方法が違う(2024.06.23)
- ウクライナのRedmine開発者が作ったRedmineテーマやプラグイン(2024.06.18)
「ソフトウェア工学」カテゴリの記事
- チームトポロジーの感想~大規模アジャイル開発でも組織構造は大きく変化する(2025.01.01)
- Redmineは組織のナレッジ基盤として実現可能なのか~島津製作所の事例を読み解く #redmineT(2024.12.29)
- アーキテクチャ設計はベストプラクティスを参照するプロセスに過ぎないのか?~Software Processes are Software, Too(ソフトウェアプロセスもまたソフトウェアである)(2024.09.22)
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
コメント