Allied ArchitectsAllied ArchitectsEngineer Blog

すべてのWebAPI開発者にお勧めの本。Web API: The Good Parts (Advent Calendar 10日目)

2014/12/10 書籍

この記事はアライドアーキテクツAdvent Calendar 10日目の記事です。

Web API: The Good Parts

はじめに

お久しぶりです。関根です。
著者の水野貴明さんよりWeb API: The Good Partsを献本頂きました。ありがとうございます。

発売前に少しだけレビューに参加させて頂き、とても良い内容だと思いながら発売を楽しみにしていました。この度実際に発売された書籍を読んで、改めて素晴らしい内容だと感じたのでご紹介させて頂きます。

概要

本書を一言で表すと、WebAPIを開発する際のベストプラクティスが凝縮されている本だと思います。

全部で6章で構成されており、そもそもWebAPIとは何か?  という問いかけから始まり、エンドポイント、リクエスト形式、レスポンスデータ、HTTPの仕様、設計、セキュリティなどについて詳細に解説しています。

また付録にチェックリストが付属しており、実際にWebAPIを開発する際にはチェックしながら開発を進める事ができます。これは本当にありがたいです。

1章 Web APIとは何か
2章 エンドポイントの設計とリクエストの形式
3章 レスポンスデータの設計
4章 HTTPの仕様を最大限利用する
5章 設計変更をしやすいWeb APIを作る
6章 堅牢なWeb.APIを作る
付録A Web APIを公開する際にできること
付録B Web .APIチェックリスト

Web API: The Good Partsより

感想

私自身の経験ですが、これまでWebAPIを開発する際は、Web上のブログや記事などを参考に試行錯誤しながら、開発を行ってきました。それはそれで良いのですが、いろいろな情報がある中で、取捨選択を行っていくのは結構大変だと感じていました。

この書籍は、そういった一つ一つの情報や、経験を体系的に整理し、わかりやすくまとめ直して、形式知として届けてくれる本です。

例えば、本書の中では次のような事柄に対して、設計上の例や、解決方法を提示して説明しています。

  • バージョン管理
  • エンドポイント
  • ログイン認証
  • レスポンスデータのフォーマット
  • エラー処理
  • キャッシュ
  • セキュリティ
  • ページング

今まではWeb上の知識や経験を元に上記の問題に対して、自分なりの解決方法で設計を行ってきましたが、こういう設計にしておくと良いとか、こうしておけば運用が楽になるなど、設計上の指針を与えてくれます。

また具体的なプログラミング言語での実装方法を解説しているわけではなく、あくまで良い設計をするにはどうすれば良いのかというところに主眼を置いているので、末長く活用できる内容となっています。

設計上で困ったりした時や、悩んだりした時にページをめくって参考にするという使い方が良いと思います。

まとめ

Web APIの設計、開発、運用についての解説書。APIは設計次第で使いづらいものになってしまうだけでなく公開後の保守運用も難しくなってしまいます。そのためAPIを美しく設計することがとても重要です。本書では「設計の美しいAPIは、使いやすい、変更しやすい、頑強である、恥ずかしくない」という考えのもと、APIをどのように設計し運用すればより効果的なのか、ありがちな罠や落とし穴を避けるにはどういう点に気をつけなければいけないのかを明らかにします。ターゲットは、URIにアクセスするとXMLやJSONなどのデータが返ってくるシンプルなタイプ――XML over HTTP方式やJSON over HTTP方式――のAPIです。読者は、Web API設計の考え方と手法を知ることができます。

Web API: The Good Partsより

 

私もこれまでいくつものWebAPIの設計、開発を行ってきましたが、もっとこの本に早く出会えていれば、今よりも良い設計ができただろうなと感じる部分がいくつもありました。

具体的な実装方法のテクニックではなく、設計上の問題に対しての指針となるような内容がたくさん書いてあるので末長く付き合える一冊だと思います。

またどうすれば美しいAPIを設計できるか?の問いに真摯に答えてくれる、とても考えさせられる一冊でもあります。

ぜひ年末年始などを利用して読んでみてはいかがでしょうか?

明日は、chikurinの番です。

sekine
  • sekine
  • ソフトウェアエンジニア
  • Python、JavaScript関連の話題を中心に、ソフトウェア開発全般に関するお話を書いていこうと思います。

RELATION ENTRY

「Pythonエンジニア養成読本」を執筆しました

「Pythonエンジニア養成読本」を執筆...

2015/04/20 Python

こんにちは。関根です。 このたび機会を頂き、共著にて「Pythonエンジニア養成読本」を執筆させて頂きました。 技術評論社のサイト * 「Pythonエンジニア養成読本」 「Pythonエンジニア養成読本」は、Pythonによる開発を行うために知っておきたい知識を1冊にまとめた書籍です。...

続きを読む

Pythonの軽量WebフレームワークBottleを試してみた(その1) – ルーティング編 (Advent Calendar 23日目)

Pythonの軽量WebフレームワークB...

2014/12/23 Python

この記事はPython Advent Calendar 2014 - Qiita 23日目 兼 アライドアーキテクツ Advent Calendar 23日目の記事です。 こんにちは。関根です。 最近は社内の有志でPythonの勉強会を開いたり、 また定期的にPythonもくもく会などを開催し...

続きを読む

sekineの記事一覧へ

ページTOPへ