YAML
APIのタイプ - YAML
APIのタイプは、REST、GraphQL、SOAP、gRPC、WebSocketなど、現代のソフトウェア開発で広く使用されているWeb APIのアーキテクチャスタイルとプロトコルを分類したものです。各タイプは異なる通信パターン、データ形式、ユースケースに対応しており、システム間のデータ交換を実現するための基盤となっています。適切なAPIタイプの選択は、システムの性能、スケーラビリティ、開発効率に大きな影響を与えます。
API
REST
GraphQL
SOAP
gRPC
WebSocket
Webサービス
通信プロトコル
- code: "01"
slug: "rest"
name: "REST"
description: "HTTPプロトコルを使用したリソース指向のアーキテクチャスタイルです。"
fullName: "Representational State Transfer"
protocol: "HTTP/1.1, HTTP/2"
dataFormat:
- "JSON"
- "XML"
- "YAML"
- "Plain Text"
communicationPattern: "Request-Response"
state: "Stateless"
caching: "Excellent (HTTP-level)"
useCases:
- "Webアプリケーション"
- "モバイルアプリ"
- "マイクロサービス"
- "パブリックAPI"
- code: "02"
slug: "graphql"
name: "GraphQL"
description: "クライアント主導のクエリ言語による柔軟なデータ取得を実現するAPIです。"
fullName: "Graph Query Language"
protocol: "HTTP/1.1, HTTP/2"
dataFormat:
- "JSON"
communicationPattern: "Query-Response"
state: "Stateless"
caching: "Complex (requires custom implementation)"
useCases:
- "モバイルアプリ"
- "SPA"
- "複雑なデータ関係"
- "APIアグリゲーション"
- code: "03"
slug: "soap"
name: "SOAP"
description: "XMLベースのメッセージングプロトコルで、厳格な標準化を特徴とするAPIです。"
fullName: "Simple Object Access Protocol"
protocol: "HTTP, HTTPS, SMTP, TCP"
dataFormat:
- "XML"
communicationPattern: "Request-Response, One-way"
state: "Stateful or Stateless"
caching: "No built-in caching"
useCases:
- "金融サービス"
- "医療システム"
- "エンタープライズ統合"
- "レガシーシステム"
- code: "04"
slug: "grpc"
name: "gRPC"
description: "Googleが開発した高性能なRPCフレームワークで、Protocol Buffersを使用します。"
fullName: "Google Remote Procedure Call"
protocol: "HTTP/2"
dataFormat:
- "Protocol Buffers (binary)"
communicationPattern: "Unary, Server Streaming, Client Streaming, Bidirectional Streaming"
state: "Connection-based"
caching: "No built-in HTTP caching"
useCases:
- "マイクロサービス"
- "内部サービス間通信"
- "リアルタイムシステム"
- "IoT"
- code: "05"
slug: "websocket"
name: "WebSocket"
description: "全二重通信を実現するプロトコルで、リアルタイムデータ交換に適しています。"
fullName: "WebSocket Protocol"
protocol: "WS, WSS (WebSocket over TLS)"
dataFormat:
- "JSON"
- "Binary"
- "Text"
communicationPattern: "Full-duplex, Event-driven"
state: "Stateful (persistent connection)"
caching: "Requires custom logic"
useCases:
- "チャットアプリ"
- "ライブダッシュボード"
- "オンラインゲーム"
- "協調編集ツール"
- code: "06"
slug: "webhook"
name: "Webhook"
description: "イベント駆動型のHTTPコールバック機構で、サーバーからクライアントへのプッシュ通知を実現します。"
fullName: "Web Callback"
protocol: "HTTP, HTTPS"
dataFormat:
- "JSON"
- "XML"
- "Form Data"
communicationPattern: "Event-driven, Push"
state: "Stateless"
caching: "Not applicable"
useCases:
- "決済通知"
- "CI/CD連携"
- "通知システム"
- "システム間連携"