pybacklogがバージョン0.1.5にてBacklogのドメイン変更に対応しました

Backlogにて2017年9月以降反映されている仕様変更に、BacklogAPIのラッパーライブラリ pybacklog が対応しました。変更の詳細及び過程と更新方法についてまとめました。
2018.11.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

pybacklog を利用したハンズオンをこなしていたところ、Backlog側の仕様変更に伴って正常に動作しないケースがありました。原因を調査してpull-requestを送ったところ、即時バージョン更新で対応して頂けました。

netmarkjp/pybacklog

経緯を踏まえつつ、変更点を紹介します。

ドメインの変更

既にご存知の方も多いと思われますが、2017年9月より新規発行時のBacklogドメインがjpからcomへと変更されています。

Backlogはサービスのドメインを.comドメインに変更します!(API開発者様へ重要なお願い)

合わせて上記記事内で以下のアナウンスも行われています。

ブラウザでのアクセスと同様に、新しく登録したスペースではAPIのドメインも (スペース名).backlog.com になります。

プログラム側のAPI変更対応

注意するべき箇所として、2017年9月以前に作成したアカウントに対して、APIをbacklog.comとして指定した上でアクセスすると正常な処理にならない点があります。

よって、2017年9月以前のアカウントであれば変更の入っていない既存のライブラリが使えますが、2017年9月以降のアカウントの場合は以下の何れかの手段を使う必要があります。

  • ラッパーライブラリに個別修正を入れる
  • APIを直接触る

APIを直接触る場合

Pythonの場合は、requestsを使ったアクセス等が考えられます。課題としては、既存のライブラリ内で行われていた例外処理等を作り込む必要があります。

import requests

# Backlog API v2
url = "https://<space>.backlog.com/api/v2/space"
params = {'apiKey': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'}
r = requests.get(url, params)
print(r.text)

pybacklogの変更点

backlog.comとbacklog.jpの両方へ、アクセスURLを意識して切り替える必要なく対応出来るようになりました。backlog.comにアクセスを行った後、エラーが返ってきた場合はbacklog.jpへアクセスするように変更が加わっています。

以下、変更に至る過程です。

筆者が送ったPRでの改修ではないところがポイントです。(送った後で問題点に気が付きました...

インストール手続き

pipenv前提ですが、以下の通りです。

% pipenv install pybacklog==0.1.5

まとめ

基本的にbacklog.jpドメインのアカウントを使われている場合は影響しない箇所ですが、直近でアカウントを作成された場合はbacklog.comドメインでのアカウントになっていることを確認済みです。

必要に応じてライブラリのアップデートをお勧めします。