最近API実装をよくするので、Web API: The Good Partsを読んでみた。

image
ここ最近、サーバーサイド開発の仕事は、もっぱらAPI開発案件が増えている。
私も、3年前くらいから、RailsやNode.jsやPHPなどで、様々なWEB APIを実装してきた。

iOSやAndroidなどのスマホ・タブレットアプリのバックエンドサービスだったり、WEBアプリでも、SPA(シングル・ページ・アプリケーション)がどんどん増えてきているのが背景にあるんだろうな。
(私のもとに来るサーバーサイドの話の、8割〜9割はAPI実装の話という体感。)

いよいよ、サーバーサイドエンジニアのタスクから、「View」の実装が消えてなくなる時代に入るのかもしれない。

そんな、時代の真っ只中で、WEB APIのハウツーについて書かれた書籍は、多くの人が待ち望んでいたのかも。

ということで、私もすでにいくつもAPI構築はしているものの、本当にこれで合っているのか自信がない部分もあったので、「答え合わせ」の意味を込めて「Web API: The Good Parts」を買って読んでみた。

まず、総論。

どちらかと言うと、初心者向けな内容かな。
普段サーバーサイドエンジニアをやっているけれども、WEB APIを開発・構築した経験などが無いという方にとっては役立つ情報が結構載っていると思う。
でもって、API開発のハウツーを少ないページ数で上手にまとめてあると思う。
また、私のような経験者でも、もちろん知らなかった事なども載っており、リファレンスとして役立つのではないかと思う。

ページ数は200ページ程度で少なめなので、経験者の方だったら結構サラッと流し読みできる感じ。

で、各論。

・WEB APIとはなにか(1章)

「APIエコノミー」という、TwitterやFacebookなどSNSに代表されるように、APIを公開することで「ビジネスを加速」させる事ができる時代であり、公開できるDBを持ってるならAPIとして公開したほうがいいよ。っていうビジネス的なお話からスタート。
(本書には書かれていないけど、「オープンデータ」とかは、その流れだね。)

・エンドポイントの設計とリクエスト形式(2章)

エンドポイントの設計の基本が書かれている。
この辺り、RailsなどのイマドキWEBフレームワークでは、普通に使われている(なんなら意識すらしない)、「RESTFul」な設計をよくご存じの方には、とても馴染み深いのでサラッと読める。
(本書にはRESTという言葉は出てくるけど、RESTFulという言葉は出てこない。まぁ言葉自体はどっちでもいい。)

逆に、これらの思考がわからないエンジニアは、WEB APIに限らず本書のエンドポイント・URIの設計をしっかりと学ぶべき。
APIに限らず、WEBサービス・WEBアプリ開発全般で知っておかなければならない。

ちなみに、経験者である私ですが。
REST Level 3 – HATEOAS というのは知らなかったorz
本書では詳しい解説はされていないけれど、今後、このREST Level3は勉強し、取り入れていってみたいと思った。

・レスポンスデータの設計(3章)

JSONでのレスポンスデータの設計の基礎について。
(XMLはもうイマドキじゃないよ、ってことで省略されている。)
個人的にはほとんど私自身実践している内容だったので、ほっと胸をなでおろしていたが、一点だけ、実践できていない部分があった。

JSONのデータ構造は、基本的に階層構造の表現がしやすいので、階層構造でデータ設計することが多かった。
が、Google JSON Style Guideによると、フラット構造の方が推奨されるらしい。
Google JSON Style Guide

・HTTPの仕様を最大限利用する(4章)

主に、HTTPのステータスコードとContent-Type関連について。(HTTPヘッダーね。)
これ、コードの実装に集中してると、ステータスコードの設定が後回しになっちゃうことが多いので、ちゃんと正しいステータスコードを返すように気をつけよう。(私の周りのエンジニアでも、後回しになっている人多い^^;)
同様に、ヘッダーのメディアタイプ(Content-Type)も後回しになりがちなので、忘れないように。(セキュリティーホールにもなるよ。)

・設計変更をしやすいWeb APIを作る(5章)

APIを公開したあとの更新(バージョンアップ)について。
特にLSUDs系APIは、影響範囲が広いのでそのためのチェック項目。

Tips(私はこれらの言葉を知らなかった)
* LSUDs系API(large set of unknown developers) TwitterやfacebookのAPIのように、不特定多数の開発者が使うAPI
* SSKDs系API  (small set of known developers) スマホアプリのバックエンドサービスのAPIなど、知っているエンジニアだけが利用するAPI

・堅牢なWeb APIを作る(6章)

タイトルから想像できる通り、WEB APIのセキュリティ。
WEB API開発の経験の有無を問わず、サーバーサイドエンジニアなら誰でも知っているXSSやXSRFなどについて基本的な解説。

セキュリティー関係のHTTPヘッダは知らなかった。
X-XSS-Protectionとか、Content-Security-Policyとか、そういうセキュリティヘッダがあったんですな〜。
おそらく、イマドキフレームワーク(Rails)とかだと、裏で勝手にヘッダの付与をやってくれてると思うので(確認はしていません)、気づいていない人も多いんじゃないかな。

これらのヘッダも駆使したいところ。

という感じ。

経験者の私としては、「答え合わせ」として結構よかったし、知らないこともちょこちょこあったので勉強になった。
WEB API開発の初心者の方で、「え?開発したことが無いから設計の仕方がわからない」という方はもちろん、「俺は超スマートだから大丈夫だぜ!」という方でも我流で書き始める前に、一読しておくといいと思う。
(オライリー本だけど、分量は多くないので、案外サクッと読める。)

ちなみに、Amazonのレビューには文章校正が雑なように書かれているけど、確かに誤字脱字は多かった(笑)
でもまぁ、私は全然気にならなかったですが(^^)

Web API: The Good Parts

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です