"RESTful Web Clients"を読んだ

May 8, 2017 - book

米オライリーから出版されている「RESTful Web Clients」という書籍を読みました。最近フロント寄りの開発を行っているのもあって、4月中に毎朝コツコツ読み進めていました。

著者はRESTful Web APIs等を書いたMike Amundsen氏。 直近ではMicroservice Architectureも共同で書いていたようです。

Reusable Client Appsを目指して

hypermedia clientsをテーマにした書籍です。 変更に強いクライアント実装とはどういう姿なのか。 クライアントはhypermedia APIをどう扱えばよいか。 タスク管理システムを例に具体的なコードを示しながら解説されています。 サーバー視点とクライアント視点両方の側からAPI設計について書かれている点が特徴的だと思います。

章ごとに、サーバーサイドのBobとクライアントサイドのCarolという二人の会話からはじまり、 その後著者によって具体的な設計・実装が解説されていくという形態をとっています。 そのため開発者が抱きがちな疑問を理解したうえで読み進めることができます。

一般的に自社内でAPIとそのクライアントを実装する場合、両者は密結合していることが多く、 汎用的な設計というのを意識する機会は少ないのではないでしょうか。 サーバー&クライアント間の整合性が主に開発者間のコミュニケーションによって維持されていたのが旧来だとすると、 事前に取り決められた仕様を介して整合性が維持される、というのが本書で提示されるメディアフォーマットだと思います。 アプリケーションに必要なリソースの動的な状態遷移のハンドリングの主導権が、クライアントからサーバー側に移動するイメージです。

対象とする読者像

各メディアフォーマットについてはいずれもドラフトレベルという点には注意が必要ですが、 これまでRESTful APIによる静的なリソース設計にとどまっていた方にとっては、 一歩先にすすむための思考の引き出しをつくるための書籍としては使えるかと。

逆にhypermedia APIについてある程度知識がある方には、あまり有用とは言えないかもしれません。

価格

ちなみに、Kindle版でも5,000円ちょっとします。 ページ数のわりには値段設定が高すぎる気が。 もし日本語訳でるとしたらいくらになるんだ…? 価格を考えるとよほど目的がハッキリしていない限りは買わなくても良かったかな…というのが正直な感想です。

下記にサンプルコードがいくつかあるので、書籍サンプルと合わせて確認したうえで購入を検討することをオススメします。