Web API の設計(ウエブ エーピーアイノセッケイ)
- 著者:
- Arnaud Lauret/株式会社クイープ(アルナード ロウレット/カブシキガイシャクイープ)
- 出版社:
- 翔泳社
- 出版日:
- 2020年08月26日頃
- ISBN:
- 9784798167015
- シリーズ:
- Programmer's SELECTION
- 在庫:
- 予約受付中
なぜ注目されているか
書籍紹介
さまざまな Web を構成する重要な要素「 API 」
使いやすく拡張性に富み、堅牢な API の設計指南書
【本書の内容】
本書は
Arnaud Lauret, "The Design of Web APIs",
Manning Publications, 2019
の邦訳版です。
SNS はもちろん動画システムや決済システムなど、いまや API (アプリケーション・プログラミング・インターフェイス) を使用しない Web 上のシステムはありません。
データを簡便にリクエストでき、使いやすいデータを返す。そういう API が求められています。
とはいえ、データをリクエストしてくるのは一か所ではありません。カスタマーがいてコンシューマーがいてデベロッパーがいて、そしてそれぞれがそれぞれの都合に合わせた使えるデータを要求してきます。
本書はこういった複雑な要望に対して、可能な限り応ええる柔軟性を備え、堅牢でシンプルな API を作る方策を示します。
コマース系のサイトをベースに、データの配置方法や拡張性を維持し続ける方法などを、実装ありきではないスタイルで、 API のすべてを語り尽くしています。また、メンテナンス性や、より多くのユーザーを獲得するためのドキュメントの記述・完備方法なども詳解します。
突貫で作りがちな API を、その使い勝手にフォーカスしながら正しく作り込んでいくための視点と姿勢を体得できる一冊です。
本書は、著者 Arnaud Lauret の長年の API 設計経験を利用し、
要件を収集する方法、ビジネス目標と技術目標のバランスを取る方法、
および消費者第一の考え方を採用する方法について、仔細に検討し、
より使いやすく可用性に富み、拡張性と堅牢性をもつ API 構築への道を詳解してくれます。
【本書のポイント】
・使うだけではなく使える API を理解できる
・ API 設計の勘所がつかめるようになる
・実世界におけるユーザー指向 API を学べる
・手書き風の概念図がかわいい
【読者が得られること】
・ API の成り立ち
・使いやすい API の作り方
・可用性・発展性のある API の設計方法
技書の森解説
API を「動くように実装する」段階から「使いやすく設計する」段階へ進みたい開発者のための設計指南書です。著者の Arnaud Lauret は API 設計のコンサルタントとして知られ、本書ではリソースの識別、エンドポイントの命名、エラー表現、バージョニング、セキュリティといった設計上の判断を、消費者 (API を呼ぶ側) の視点から一貫して論じています。
特徴的なのは、 HTTP メソッドやステータスコードの仕様解説にとどまらず、「なぜその設計だと使いにくいのか」「どう改善すると開発者体験が向上するのか」を具体的な Before / After で見せる点です。フレームワーク非依存で書かれているため、言語やプラットフォームに関係なく適用できる原則が手に入ります。
読者としては、すでに何らかの API を実装した経験があり、設計の良し悪しを判断する基準がほしい人に向きます。初めて Web アプリケーションを作る段階では抽象度が高すぎるため、まずは一つ API を書いてみてから本書に戻ると議論が具体的に響きます。セキュリティテスト側の視点を扱う『ハッキング API 』とは攻守の補完関係にあり、設計と防御の両面を押さえたい場合はあわせて読む価値があります。
言及 Qiita 記事 (2 件)
この本に興味がある方におすすめ
この本に関連
関連記事
関連用語
API
ソフトウェア同士が機能やデータをやり取りするための接続規約
API Gateway
API のエントリーポイントとして認証、スロットリング、ルーティングを一元管理する AWS サービス
API ドキュメントとは - 仕様・エンドポイント・入出力形式を記述し開発者の統合を支援する文書
API の仕様、エンドポイント、リクエスト/レスポンス形式を記述し、開発者の統合を支援するドキュメント
FastAPI
Python 製の高速な Web API フレームワーク。型ヒントを活かした効率的な開発が特徴
API ファーストデザイン
実装の前に API の仕様を設計・合意し、フロントエンドとバックエンドの並行開発を可能にするアプローチ
API キー
API の利用者を識別し、アクセスを制御するための文字列トークン