はじめに
記事を見ていただいて、ありがとうございます!
Webエンジニアをしているsannoと申します。
Webサービスを開発する上で、Web APIの開発は切っても切り離せない存在だと思います。
SPAやモバイルアプリケーションで、フロントエンドからバックエンドを呼び出す処理がWeb APIだったりするかもしれません。
また、外部サービスの連携でWeb APIを使うこともあるかもしれません。
さらに、外部サービスの連携で使用する側だけでなく、自身のWebサービスでWeb APIを公開するというようなこともあるかもしれません。
Web APIを開発するあるいは使用する側だったとしても、Web APIの最適な設計方法について知識があった方が良いですよね。
そんな時におすすめしたい書籍がWeb API: The Good Partsです。
この書籍はWeb APIを考える時に何度も読み返していて、それだけおすすめしたい一冊です。
この記事が、Web API: The Good Partsという素晴らしい書籍を広める一助になれたら嬉しいです。
書籍をおすすめしたい人
Web APIの開発に関わっている方に全力でおすすめしたいです。
そのWeb APIが外部に公開されているかに関わらず、全てのWeb API開発で参考になる書籍です。
Web APIのリクエスト設計、レスポンス設計、ヘッダー設計、セキュリティを考慮した設計、制限といったワードにビビッときた方には特におすすめです。
また、Web APIを開発する側だけでなく、使用する側だったとしてもこの書籍はおすすめしたいです。
例えば、外部連携で他サービスのWeb APIを使用した開発をしているエンジニアや、バックエンドのWeb APIを利用しているフロントエンドエンジニアといった方です。
ではなぜ、Web APIを使用する側の方にもこの書籍をおすすめしたいかというと、Web APIの最適な設計を知ることで開発効率が上がると考えるからです。
世の中のWeb APIの多くは、書籍で解説しているような最適な設計に則った構造になっていることが多いと思います。
(全てのWeb APIでそうなっているわけではないと思いますが。)
それゆえ、書籍で解説しているような最適な設計を理解しておくことで、実際にWeb APIを使う際にそのWeb APIを理解する効率が上がるはずです。
そして、Web APIを理解する効率が上がることで開発の効率も上がると考えています。
ですので、この書籍はWeb APIを開発する側、使用する側の双方のエンジニアにおすすめしたい一冊です。
「Web API: The Good Parts」を読むモチベーション
この書籍を読むモチベーションは、Web API を美しく設計したいという気持ちではないでしょうか。
Web API を美しく設計するという言葉は書籍の中でも使われていて、Web API を美しく設計するべき理由についても述べられています。
さらに言うと、Web API を美しく設計したいという思いは、具体的な目的からきているのではないでしょうか。
私の場合だと、美しくない設計をしてチームの生産性を落としたくないという目的が大きかったと思います。
美しくない設計の具体例として、Web APIのリクエスト設計でHTTPのGET、POST、PUT、PATCH、DELTEの意味にそぐわない設計がされているということがあったとします。
(HTTPのGET、POST、PUT、PATCH、DELTEに関する設計の考え方については書籍の中で述べられていますので、詳細は書籍を読んでみてください。)
HTTPの概念に慣れている人であれば、GET、POST、PUT、PATCH、DELTEの主な役割が頭に浮かぶと思います。
あるWeb APIのエンドポイントでPOSTが定義されている場合、そのエンドポイントでは何かデータを作成してその結果が返ってくるものと予測するのではないでしょうか。
もし、そのエンドポイントのコードについて何か改修が必要になった場合に、データ作成の処理に影響がないか、その処理を探すかもしれません。
しかし実は、そのエンドポイントのコードではデータ作成をしておらず、あるテーブルのデータをJSONに詰めて返しているだけの処理だったとします。
単純に言ってしまうと、そのエンドポイントはPOSTではなくGETで定義すべきものだったと言うことです。
そんな罠が仕掛けられているエンドポイントのコードで、慎重な人ほどどこかにデータ作成の処理があるはずと綿密に調べてしまい、調査に多くの時間をかけてしまうのではないでしょうか。
美しくない設計をしたことで、幻のコード探しに時間を浪費させてしまい生産性を落とすという結果にが生じるかもしません。
そういった残念な結果を招かないために、チームの生産性を落とさない(もっと言うと生産性を上げる)ような設計をしたいというのが、私がこの書籍を読むモチベーションでした。
そして、この書籍はそのモチベーションに応えてくれるような内容だったと思います。
長々と持論を述べてしまいましたが、何か共感してもらえたらこの書籍は刺さるものがあると思うので、ぜひ手に取ってみてください。
終わりに
この記事に読んでくれている皆さんは、きっとWeb API の設計に興味があり、できるならば美しい設計をしたいと考えているのではないでしょうか。
そして、Web API を美しく設計したいという気持ちの原動力に具体的な目的があるのではないでしょうか。
この書籍を読むことで、その具体的な目的を達成する方法やヒントを得られるのではないかと思います。
ここまで記事を見ていただいて、ありがとうございました!!
コメント