マスタリングAPIアーキテクチャ ―モノリシックからマイクロサービスへとアーキテクチャを進化させるための実践的手法
by James Gough, Daniel Bryant, Matthew Auburn, 石川 朝久
2章
APIのテスト
1章では、APIの種類と、APIがアーキテクチャに提供する価値について説明しました。2章では、APIをテストするアプローチを検討し、本書の「第1部 APIの設計・構築・テスト」を締めくくります。「イントロダクション」で取り上げた新しいAttendee APIは、当然、テスト・検証をされるべきです。私たちは、テストこそAPI構築の中核であると考えています。テストは、サービスが期待通りに動作しているという高い信頼性を提供し、利用者に高品質のサービスを提供するのに役立ちます。さまざまな条件下でAPIをテストすることで、APIが正しく動作しているという確信を得ることができるのです。
あらゆる製品を作るとき同様、APIの構築過程において、サービスが期待通りに機能するか否かを確認する唯一の方法は、テストを実施することです。マウスガードを作る場合なら、これは製品を伸ばしたり、たたいたり、押したり、引いたり、シミュレーションを行うことを意味します*1。
*1 Matthewの友人はマウスガードの会社を経営しており、製品の完全性をテストするための大変なプロセスを聞かされていました。とはいえ、試合中にしかテストが行われないようなマウスガードは、だれも欲しがらないでしょう!
「1.6 OpenAPIを利用したREST APIの仕様」で述べたように、APIはドキュメントと異なるデータを返すべきではありません。また、APIが大幅な変更を加えたり、結果を取得する時間が長いためにネットワークのタイムアウトが発生したりすると、利用者の不満がたまります。このような種類の問題は顧客を遠ざける要因になりますが、APIサービスに対する品質テストを行うことで完全に防ぐことが可能です。構築されたAPIは、想定外の入力をした利用者に有用なフィードバックを送ること、安全であること、合意したサービスレベル指標(SLI:Service ...