【Web API】利便性が高いAPI設計(汎用性 < 利便性)
汎用性、流用性(機能の細分化)より利便性が重視されるケース
API の設計を一般的な定石(汎用性の高さ、単一責任)に従って行う際、例えばEコマースの「新着商品」、「人気 の商品」、「ユーザー情報」、「おすすめ商品」などはすべて異なる API となってしまうことがある。そうしたクライアントアプリケーションはホーム画面たった 1 画面を表示するのに、何度も異なる API にアクセスしなければならず、非効率であり、画面を表示するまでに時間もかかっ てしまい、ユーザーを待たせてしまう。これは良いユーザー体験とはいえない。
したがって とにかくホーム画面で表示する情報を 1 つに詰め込んだ“ホーム画面表示用”API を作成し、それ に 1 回アクセスするだけですべての情報が得られるような設計の方が利便性が高い、と言える。
1 スクリーン 1API コール、1 セーブ 1API コー ル
こうしたケースでは、必要とされる API の設計は、必ずしも汎用的という観点からは美しい 必要はない。2014 年 3 月に行われた「API Strategy and Practice」†9 における「Michele Titolo 氏と Paul Wright 氏の講演」†10 においても「1 スクリーン 1API コール、1 セーブ 1API コー ル」という言葉が出てきており、これはひとつの画面を表示するためにコールするのが 1 つの API ですむようにそれに合わせた API を用意し、何らかのデータをサーバに保存する場合にも 1 回の コールですむようにそれ向けの API を用意するのがよい、ということが述べられている。