こんにちは、@yshr10icです。
「Web API: The Good Parts」を読んだので、その読書メモです!
本の紹介
本書は2014年に発売されたもので、私は2017年くらいに購入しました。
最近、個人開発でWeb APIを開発しようと思った時に、どう設計すれば良いのか分からなかったので、本書を読み返してみることにしました。
本書を読んでおすすめしたいポイントを先に紹介しておきます。
- Web APIの設計について網羅的に学ぶことができる
- 実際の複数のWeb APIを比較しているため、納得感がある
- 本は厚すぎず(200ページほど)、値段も2,400円とお手頃
読んだ感想や気付き
1章:Web APIとは何か
そもそもWeb APIとは何か、Web APIの重要性、どんなAPIがあるのか、について書かれています。
改めて、Web APIとはなんなのかについて知ることができます。
2章:エンドポイントの設計とリクエストの形式
擬似的なSNSサービスを作ることを仮定して、どんなAPI設計をすれば良いのかを学んでいきます。
SNSサービスでは、ユーザの登録や編集、友達の検索や追加・削除、メッセージなどが機能として必要です。
上記のようなSNSサービスを題材として、2章では以下のことが学べます。
- エンドポイント(=URI)の基本的な設計方針
- HTTPメソッドとエンドポイントの対応付け
- エンドポイント設計における注意点
- URIは名詞が良いのか動詞が良いのか
- 単語は単数形が良いのか複数形が良いのか
- どのような単語を利用すれば良いのか
- 検索とクエリパラメータの設計方法
- ログイン方法
これらについて、TwitterやFacebook、GitHubなどの実際のWeb APIのエンドポイントを比較しながら、筆者の意見を述べているので、非常に納得感があります!
3章:レスポンスデータの設計
引き続きSNSサービスを題材として、レスポンスデータの設計方法について学んでいきます。
- データフォーマットはJSON?XML?それ以外?
- データフォーマットを選べる場合の指定方法
- データの内部構造の考え方
- フィールド名はどのように付けたら良いのか
- データは階層構造にした方が良いのかフラットにした方が良いのか
- 配列の件数や続きの情報をどう返したら良いのか
- エラーをどのように表現したら良いのか
「配列の件数や続きの情報をどう返したら良いのか」というのは、個人で勉強していると小規模のデータしか扱わないので、今まであまり考えたこともありませんでした。
4章:HTTPの仕様を最大限利用する
Web APIなのでHTTP通信を行います。本章では、HTTP通信の仕様を理解し、HTTP通信に任せられることは何かについて学びます。
- どのような時にどのステータスコードを返すか
- キャッシュをどのように利用するか
- メディアタイプはどれを指定すれば良いのか
HTTP通信ではキャッシュがどのようにされているかを知ることができます。
5章:設計変更をしやすいWeb APIを作る
Web APIを運用していく上で、何に気をつければ良いかを学んでいきます。
- Web APIのバージョン管理方法
- URIにバージョンを埋め込む場合
- バージョンをクエリパラメータで指定する場合
- メディアタイプでバージョンを指定する場合
- バージョンを変える際に何に気をつければ良いのか
- 古いバージョンのAPIを停止する時に何を気をつければ良いのか
なかなか個人で勉強していく上では身につかない知識なので、非常に勉強になる&大事な章となっています。
6章:堅牢なWeb APIを作る
どんなセキュリティの問題があるのかを提起した上で、それぞれの対策が紹介されています。
- XSS
- XSRF
- JSONハイジャック
- パラメータの改ざん
セキュリティに関しては、これをすれば絶対に大丈夫というものが存在しないので、非常に難しい問題ですね。また、セキュリティの問題は日々アップデートされていくと思うので、最新情報を常にウォッチしていくのが重要だと感じました。
まとめ
本書を通じて、Web APIを公開する上で必要となる知識を網羅的に学ぶことができました。
200ページほどで読みやすいので、これからWeb APIについて学びたい方は本書で基礎知識を学んでみてはいかがでしょうか?
その他おすすめの本
(2024/11/21 00:59:21時点 Amazon調べ-詳細)