先日、自社システムで新しく外部APIの連携を行いました。
その過程で、外部APIを使うときに気をつけることがいくつかあるなーと思ったので記事にします。
1. 外部API側のエラーが起きる前提の実装をし、リカバリーの手段を用意しておくこと
外部APIは、いつ、どんな事情でエラーが起きるか分かりません。
外部API側でエラーが起きたとき、開発チームに通知するところまでは行うことが多いと思います。
ただし、そこで終わってしまうのは勿体無いです。
開発者に通知するだけでは、実際にエラーが起きたとき初動でできることは、状況を確認し、それを元にAPIの提供側に問い合わせる、という程度に留まってしまい、お客さんに影響が出てしまった場合のリカバリーまで時間がかかることになります。
利用するAPIの性質にもよりますが、可能であれば管理者画面でリトライor手動でリカバリーできる方法を用意しておくこと(サービス運用者が力技で対応できる手段を残しておく)のが良いと思っています。
それば難しい場合は、せめてエラーが起きた際に状況を確認するマニュアルを用意しておく(レコードのどの値をまず確認するべきか、その場合の影響範囲など)くらいはしておくと、リカバリーまでの時間を大幅に早めることができるのでは、と思いました。
実際、今回のAPI導入後、外部API側でエラーが起きましたが、管理画面で対応する手段を実装しておいたことで障害にならず、かつ開発側で特に何もせず乗り越えることができました。
2. API管理画面も熟知しておく
私の反省ですが、外部API連携を進めるにあたって、どうしても実装の方に気を取られてしまい、外部API側の管理画面を隅々まで確認することをしばらく怠ってしまいました。
その結果、後から管理画面でいくつか不具合や不自然な挙動にあたり、慌てて外部API提供側に確認することになりました。
早めに管理画面を一通り触り、疑問点や運用していく上で障害になりそうな点を確認しておくと良さそうです。 例えば、以下のような点です。
- APIキーの管理の仕方はどのようになっているか
- 管理画面を触れるユーザーの管理はどのようになっているか
- ロールがあるなら、それぞれのロールができること、できないことを確認
- 外部API管理画面内の各種設定や機能を使ってみて、エラーが起きないか
- 若いAPIサービスだと割とここでつまづくこともあります
利用する外部APIにまつわることは全て自分で知っておく、という気持ちでいるのが大切かなと思いました。
まとめ
今まで業務で外部APIの導入をやったことがなかったので色々と反省と気づきがありました。
次回以降機会があれば、今回の経験を活かしたいなと思います。