パブリック API 設計ガイド
外部公開 API の設計原則から実装まで、Rails API モードと AWS API Gateway で実践する
プロローグ — APIが世界をつなぐ
なぜAPIを公開するのか、ビジネス価値と設計の旅の始まり
REST の基本原則 — リソース指向で考える
URI設計、HTTPメソッドの使い方、RESTfulなAPI設計の基礎
リクエストとレスポンスの設計 — 一貫性のある形を作る
JSON形式の統一、ステータスコード、エンベロープパターン、シリアライザーの使い方
認証と認可 — 誰がAPIを使えるか
APIキー、OAuth 2.0、JWTを使った認証・認可の実装
バージョニング戦略 — 壊さずに進化させる
URLバージョニング、ヘッダーバージョニング、後方互換性の保ち方
ページネーションとフィルタリング — 大量データを扱う
オフセット/カーソルページネーション、フィルタリング、ソートの設計と実装
レート制限とスロットリング — APIを守る壁
rack-attack、AWS API Gatewayのスロットリング、適切な制限設計
エラーハンドリング — 開発者に優しいエラー
RFC 7807 Problem Details、一貫したエラー形式、デバッグしやすい設計
ドキュメンテーション — 使いたくなるAPIドキュメント
OpenAPI/Swagger仕様、rswagでのドキュメント自動生成、Developer Portalの構築
テストとモニタリング — APIの品質を保つ
RSpecによるAPIテスト、CloudWatchでの監視、SLO/SLAの設計
GraphQL と gRPC — RESTの先へ
graphql-rubyによるGraphQL実装、gRPCとの使い分け、それぞれの適切なユースケース
エピローグ — APIエコシステムを育てる
Developer Experience、API戦略、コミュニティ形成、長期的な運営