【要約】API入門 [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
APIに関する用語の乱立による混乱。設計スタイルと呼び出しパターンの混同。適切な技術選定基準の欠如。具体的には以下の課題が挙げられる。
- ・「REST」と「同期通信」を混同する誤解。
- ・リソース中心(REST)かアクション中心(RPC)かの判断基準の不明確さ。
- ・データの過不足(Over-fetch/Under-fetch)による通信効率の低下。
// Approach
APIを以下の5つの軸で構造化して整理する手法を提示。
1.設計スタイル
- ・REST-ish, RPC/gRPC, GraphQL, SOAP, Webhook等
2.呼び出しパターン
- ・同期, 非同期(ジョブ+ポーリング, Webhook, キュー), リアルタイム(WebSocket/SSE)
3.フレームワーク & 言語
- ・FastAPI, Spring Boot, NestJS, Gin等
4.プロトコル & データ形式
- ・HTTP/1-3, gRPC, JSON, Protobuf等
5.セキュリティ / 認証
- ・API Key, OAuth2, JWT, mTLS等
// Result
APIの構成要素を「軸」で捉える思考モデルを確立。これにより、以下の効果が期待できる。
- ・技術選定時の判断基準の明確化。
- ・開発者間における技術仕様の正確なコミュニケーション。
- ・複雑なマイクロサービス構成における通信設計の整理。
- ・新技術導入時の適切な分類と位置付けの把握。
Senior Engineer Insight
> API設計はシステムの性能と運用コストを左右する。技術責任者としては、単なる知識の習得ではなく、トレードオフの判断力を重視する。内部通信にはgRPCによる低レイテンシを、外部公開にはRESTによる互換性とデバッグ容易性を、フロントエンドにはGraphQLによる開発効率を。システムのトラフィック特性、ネットワーク品質、チームの習熟度に基づき、これらを冷徹に使い分ける判断が求められる。