SOAP (Simple Object Access Protocol) 是一種基於 XML 的訊息協定,用於在電腦之間交換資訊。在 REST 接管之前,它是企業 Web 服務的主導標準。SOAP 是嚴謹的、標準化的且高度可擴充的。它嚴重依賴 XML schemas 和正式契約,使其在銀行和電信等需要嚴格可靠性和安全性的產業中很受歡迎。核心概念#
1.
WSDL (Web Services Description Language):一個 XML 檔案,充當 API 的「手冊」。它確切定義了存在哪些端點、它 們接受什麼參數以及它們返回什麼。
2.
XML Envelope:每個 SOAP 訊息都包裹在一個特定的 XML 結構中。
3.
ACID 合規性:SOAP 旨在支援原子交易(全有或全無),這對金融轉帳至關重要。
程式碼範例:Envelope#
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Header>
<Authentication>
<User>admin</User>
<Token>12345</Token>
</Authentication>
</soap:Header>
<soap:Body>
<m:GetAccountBalance xmlns:m="http://bank.org/accounts">
<m:AccountNumber>987654321</m:AccountNumber>
</m:GetAccountBalance>
</soap:Body>
</soap:Envelope>
比較:SOAP vs. REST#
| 功能 | REST | SOAP |
|---|
| 格式 | JSON (通常), XML, Text | 僅 XML |
| 哲學 | 基於資源 (URI) | 基於動作 (Remote Procedure) |
| 契約 | 鬆散 (OpenAPI 可選) | 嚴格 (WSDL 必須) |
| 傳輸 | HTTP/HTTPS | HTTP, SMTP, TCP, JMS |
| 錯誤 | HTTP 狀態碼 (404, 500) | SOAP Faults (在 XML body 中) |
在 Apidog 中除錯 SOAP#
雖然 SOAP 是傳統技術,Apidog 透過其 HTTP 客戶端完全支援它。1. 配置請求#
由於 SOAP 只是帶有 XML 的 HTTP POST:2.
將 Header Content-Type 設定為 text/xml 或 application/soap+xml。
2. 輸入 Envelope#
將您的 XML Envelope 貼上到 body 編輯器中。Apidog 提供 語法突顯和 XML 格式化以協助管理大型 XML 結構。<soap:Envelope ...>
...
</soap:Envelope>
3. 解析 WSDL(可選)#
雖然 Apidog 目前不像對 OpenAPI 那樣從 WSDL 自動生成集合,但您通常可以在 WSDL 檔案中的 <soap:address> 標籤內找到端點 URL。關鍵收穫#
企業標準:SOAP 被嚴格標準化且可靠,廣泛用於銀行和傳統企業系統。
基於 XML:它使用 XML 進行訊息格式,使用 WSDL 進行服務定義。
ACID 合規性:專為不允許部分失敗的原子交易而設計。
Apidog 相容性:雖然是傳統技 術,但您可以使用帶有 XML body 的標準 HTTP 客戶端在 Apidog 中完全測試 SOAP 服務。
Modified at 2025-12-29 12:07:25