こんにちは。GMO NIKKO エンジニアのALPHです。
今回、偶然にも
Backlog API を触る機会がありましたので
紹介させて頂きたいとおもいます。
Backlogに関してはこちら
使ったことがない皆さんもいるかもしれないので簡単に説明すると
Backlogは課題管理が得意なプロジェクト管理ツールなんですが
WikiやGitまわりが使いやすく、また見やすく本当に重宝させて頂いています。
使ってて微妙にやる気がなくなってくるプロジェクト管理ツールが多いのですが
BackLogに関してはだんだん愛着がわいてきて
多少の不便があってもなぜか利用してしまう
不思議な感じがします。
昔、影舞(今は活動がとまっている模様)
を少しつかっていたこともあるせいかもしれませんが
なんとなく同じフィーリングで利用できるので
そのような技術者さんはなじみやすいかもしれません。
さらに実は、、、、
Backlogは APIが公開されており
APIを使ってある程度自由にデータを取得、更新等ができる
のです。(意外と地味にきづかない!)
Backlog API の詳細は下をクリック
https://developer.nulab-inc.com/ja/docs/backlog
例えば、APIを使った業務ツール等に発展できるかもしれません。
ただ、若干情報量が少なく、ネット上でのサンプルも少なく
最初は少し苦労するかもしれません。
まずアクセス方法が、私も最初はわかりませんでした。
今回、
誰でも簡単にアクセスする方法を簡単に書こうと思うのですが
まずはライブラリではなくcURLのほうがわかりやすいと思いますので
APIキー + cURL を使ったアクセス方法から説明していきます。
Backlog API は
基本的な構成はREST APIで
認証方式は、APIキーとOauth認証があり
今回はAPIキーを使った方法を記載します。
APIキーはすぐ手軽に
一般ユーザーでも管理画面から発行できます。
権限はデータ取得であればゲストビューアーでもOKです。
APIでアクセスするユーザーを準備したら
そのAPIユーザを対象プロジェクトに参加させます。
プロジェクト参加権限がない場合はデータ取得できません。
※書き込みはトラブルの元なので注意してください。
それでは、APIキーを発行したら下記のようにcURLでたたいてみましょう
下の例は、プロジェクトの一覧を取得するコマンド
1 |
curl https://{YourSpace}.backlog.jp/api/v2/projects?apiKey={YourAPIKey} --request GET |
下の例は、課題の一覧を取得するコマンド
1 |
curl https://{YourSpace}.backlog.jp/api/v2/issues?apiKey={YourAPIKey} --request GET |
戻りの値はJson形式で返ってきます。
※現在MAX100件程度しか返ってこないので、もっとデータをとりたい場合は うまくoffsetを利用してください。
あとは、プログラムを使って、その戻ってきたJsonデータをCSVになおしたりします。
また、追加・更新系の処理はメソッドPOST,PATCH等を利用して行っていきます。
プロジェクトを新規に追加する場合のコマンド例
1 2 3 |
curl https://{YourSpace}.backlog.jp/api/v2/projects?apiKey={YourAPIKey} -H "Content-Type:application/x-www-form-urlencoded" --request POST \ --data-urlencode "name=ThisIsTest" --data-urlencode "key=TEST" --data-urlencode "chartEnabled=false" \ --data-urlencode "subtaskingEnabled=false" --data-urlencode "textFormattingRule=backlog" |
プロジェクトの更新を行う場合のコマンド例
1 2 3 |
curl https://{YourSpace}.backlog.jp/api/v2/projects/{TargetProjectId}?apiKey={YourAPIKey} -H "Content-Type:application/x-www-form-urlencoded" --request PATCH \ --data-urlencode "name=ThisIsTest2" --data-urlencode "key=TEST2" --data-urlencode "chartEnabled=false" \ --data-urlencode "subtaskingEnabled=false" --data-urlencode "textFormattingRule=backlog" |
だんだんめんどくさくなってきましたね(ToT)
やっぱり簡単にライブラリを使ってデータを抽出したいという人は
Backlog-v2 のライブラリをおすすめします。
Backlog-v2 は ここから
https://github.com/atomita/backlog-v2.git
まず、対象のディレクトリにコンポーザーとセットでインストールします。
1 2 3 4 5 6 |
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php composer-setup.php php -r "unlink('composer-setup.php');" git clone https://github.com/atomita/backlog-v2.git cd .\backlog-v2 php ../composer.phar install |
次に同じ階層に適当な名前でPHPを作り、疎通テストを行います。
その際にautoload.php を読み込んであげてください。
1 2 3 4 5 6 7 |
require "./backlog-v2/vendor/autoload.php"; use \atomita\Backlog; use \atomita\BacklogException; $backlog = new Backlog($YOUR_SPACE, $API_KEY); $space = $backlog->space->get(); $yourProjects = $backlog->projects->get(); |
こちらも思ったより、簡単にインストール&疎通テストまでできますね。
基本はこのライブラリを使っている人が多いのではないかと思いますが
イメージがわきやすいcURLとライブラリの比較を中心に今回は記載させて頂きました。
もうエンジニアとしてもおじいちゃんの域になってきました。
目もしょぼしょぼ、よく最近なにも見えなくなってきました。
でもまだまだ好奇心はいっぱいで、ちょっとつらくなってきましたが
日々精進している毎日です。