【そーぷえーぴーあい】

SOAP API とは?

💡 XMLで厳格に定義された「お堅い」API通信
📌 このページのポイント
SOAP API — XMLベースのメッセージ通信 クライアント リクエスト送信 サーバー レスポンス返却 SOAPメッセージ(XML) Header(認証情報など) Body(処理内容・データ) WSDL サービスの仕様書(XML) 操作・メッセージ形式を定義 REST APIとの違い SOAP: XML厳密、高セキュリティ REST: JSON軽量、柔軟
SOAP APIのメッセージ構造と通信の流れ
ひよこ ひよこ

REST APIと何が違うの?

ペンギン先生 ペンギン先生

RESTHTTPメソッド(GET/POST/PUT/DELETE)でリソースを操作するシンプルなスタイル。SOAPはXMLのメッセージ構造で「操作」を定義する厳密なプロトコルRESTJSON+HTTPで軽量、SOAPはXML+独自ヘッダーで重厚。RESTは設計の自由度が高い、SOAPはWSDLで厳密に型定義されるという違いだよ

ひよこ ひよこ

SOAPの強みは?

ペンギン先生 ペンギン先生

①WS-SecurityによるメッセージレベルのセキュリティHTTPSだけでなくXML自体を暗号化・署名)、②WS-ReliableMessagingによるメッセージ保証、③WS-AtomicTransactionによる分散トランザクション、④WSDLによる厳密なインターフェース定義とコード自動生成。信頼性が最重要な金融取引で強いんだよ

ひよこ ひよこ

なぜRESTに負けたの?

ペンギン先生 ペンギン先生

SOAPはXMLの冗長さ、WSDLの複雑さ、学習コストの高さが問題。JSONの方がXMLより軽量で読みやすく、ブラウザJavaScriptと相性が良い。モバイルアプリやSPAの台頭でRESTが主流になった。2010年代以降の新規APIはほぼRESTGraphQL。SOAPは既存システムの保守で残り続けるよ

ひよこ ひよこ

今でもSOAPを使うケースは?

ペンギン先生 ペンギン先生

①銀行・証券の基幹系API、②医療情報システム(HL7/FHIR以前の連携)、③政府系のレガシーシステム、④SAP等のERPの連携インターフェース。企業間連携では今でもSOAPが指定されることがある。既存のSOAP APIと連携する必要があるなら、各言語のSOAPクライアントライブラリを使えば比較的簡単に扱えるよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SOAP API」って出てきたら「XMLベースの厳格なAPI通信プロトコル」と思えればだいたいOK!
📖 おまけ:英語の意味
「Simple Object Access Protocol」 = 簡易オブジェクトアクセスプロトコル
💬 Simple(簡易)と名付けられたけど、実際にはかなり複雑。名前負けしているよ
← 用語集にもどる