WebAPIの分類_TreeDiagram
WebAPI:
├── RESTful API:
│ ├── OData
│ ├── JSON API
│ ├── HAL (Hypertext Application Language)
│ └── Siren
├── SOAP API:
│ └── WSDL (Web Services Description Language)
├── GraphQL:
├── JSON-RPC:
├── XML-RPC:
└── gRPC:
詳細
RESTful API (Representational State Transfer)
特徴
- HTTPメソッド(GET、POST、PUT、DELETE)を使用
- ステートレスな通信(各リクエストは独立)
- JSON、XMLなど複数のデータフォーマットをサポート
- Uniform Resource Locator (URL) を使用してリソースを識別
使用例
- ウェブサービスやモバイルアプリケーション
- ソーシャルメディアプラットフォーム(例:Twitter API)
- Eコマースアプリケーション
具体的なWeb API
- ODate: ビジネスインテリジェンスツール(例:PowerBI)との連携
SOAP (Simple Object Access Protocol)
特徴
- XMLベースのメッセージングプロトコル
- 高いセキュリティと信頼性
- 複雑なトランザクションやセキュリティが必要な場合に適している
使用例
- 金融サービス、医療システム
- エンタープライズソフトウェア
GraphQL
特徴
- クエリ言語で、クライアントが必要なデータのみを取得
- 単一のエンドポイントを使用
- 強く型付けされたスキーマ
使用例
- ソーシャルメディアプラットフォーム(例:Facebook、GitHub API)
- 動的なデータニーズを持つモバイルアプリケーション
- データ量が多いアプリケーション
JSON-RPC
特徴
- JSONを使用したリモートプロシージャコール
- シンプルで軽量
- 低レイテンシーで効率的な通信
使用例
- モバイルアプリやマイクロサービス間の通信
- リアルタイム、高パフォーマンスシステム
XML-RPC
特徴
- XMLを使用したリモートプロシージャコール
- 古いプロトコルで、複雑なデータを扱う
使用例
- レガシーシステムや特定のエンタープライズアプリケーション
gRPC (gRPC Remote Procedure Calls)
特徴
- HTTP/2を使用した高速通信
- プロトコルバッファ(Protocol Buffers)を使用した効率的なデータシリアライゼーション
- 双方向ストリーミングをサポート
使用例
- マイクロサービスアーキテクチャ
- リアルタイム通信が必要なアプリケーション(例:チャットアプリ)
- 高パフォーマンスが求められるシステム