2021 年現在、API としては REST、GraphQL、gRPC の 3 つがよく採用されています。
この記事には、これら 3 つの概要と、関連する書籍をそれぞれまとめました。
また、前提となる Web やネットワークの基礎知識を学ぶためのおすすめ書籍も掲載しています。
REST
REST は Web の設計として広く知られており、API の設計としても採用例は豊富です。
REST 自体は API に限らない Web のアーキテクチャスタイルですが、JSON 形式の Web API の設計として使われることが多いです。
REST 関係する書籍を 2 冊紹介します。
Webを支える技術 ―― HTTP,URI,HTML,そしてREST
Web の概論に始まり、REST や Atom といった関連分野についても解説している書籍です。
Web API の設計についても 1 章を割いて解説されており、とても参考になります。
HTTP について、概要は理解している上でこの本に手をつけるのがおすすめです。
Web API: The Good Parts
Web API の設計について手厚く解説された書籍です。
エンドポイントやリクエスト・レスポンスボディなどの設計について、具体的に分かりやすく解説されています。
API の設計で悩んだことがあれば気になるであろう内容がたくさん解説されており、非常におすすめできる 1 冊です。
私は未読ですが、同じくオライリーの『RESTful Webサービス』という書籍も良さそうです。
GraphQL
GraphQL は、Facebook で開発された API のための問い合わせ言語です。
REST との大きな違いとして、クライアントがクエリで指定した必要なデータだけを取得できることがあります。
その性質から、BFF (Backend for Frontend) のような立ち位置で使われる例をよく見かけます。
初めてのGraphQL ―Webサービスを作って学ぶ新世代API
現状、GraphQL についての日本語の解説書は、(Amazon で検索した限りでは) この 1 冊のみとなります。
GraphQL の概要から、サーバー・クライアントの実装、実戦投入にあたっての必要知識など、基本として知っておきたいことが一通り解説されています。
GraphQL の基本を学びたい際に、とりあえずおすすめできる一冊です。
gRPC
gRPC は、Google が開発した HTTP/2 ベースの高速な API です。
標準では Protocol Buffers という形式でシリアライズされて通信されます。
gRPC は特にスキーマからコードを生成して使う「スキーマ駆動」の開発ができることが特徴的であり、マイクロサービス間の通信に利用する例が多いです。
スターティングgRPC
現状、gRPC についての紙ベースの日本語書籍としては、(Amazon で検索した限りでは) この 1 冊のみとなります。
gRPC の概要と、サーバー・クライアントの実装サンプルが書かれています。
gRPC について紙ベースで簡単に学びたい、という際に良いかもしれません。
前提となる分野
HTTP・Web
REST、GraphQL、gRPC といったものを学ぶ際は、前提として HTTP や Web の基礎知識を学んでおきたいです。
HTTP や Web の仕組み・Web アプリの仕組みを理解するための書籍は こちら の記事にまとめているので、参照ください。
特に以下の 2 冊がおすすめです。
ネットワーク
Web の仕組みを学ぶ際は、さらに前提としてネットワークの基礎知識がほしくなります。
ネットワークに関する入門書は こちら の記事にまとめているので、参照ください。
特に以下の 2 冊がおすすめです。