Simple Object Access Protocol. Редко используется, чаще gRPC, JSON-RPC и REST API
Протокол, схожий с JSON-RPC, но передаёт данные в формате XML
В отличии от JSON-RPC имеет строгую структуру WSDL (Web Services Description Language). Описывает доступные методы, параметры, структуру сообщений
Также как и JSON-RPC и gRPC вызывает локальные функции сервера и получает результат
По умолчанию не имеет встроенной защиты, но легко интегрируется с WS-Security (Web Service Security). Это добавляет Аутентификацию, подпись сообщений и шифрование
Пример структуры
POST /Calculator HTTP/1.1
Host: example.com
Content-Type: text/xml; charset=utf-8
Content-Length: nnnn
SOAPAction: "Add"
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body>
<Add xmlns="http://example.com/calculator">
<a>5</a>
<b>3</b>
</Add>
</soap:Body>
</soap:Envelope>
Ответ
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<AddResponse xmlns="http://example.com/calculator">
<AddResult>8</AddResult>
</AddResponse>
</soap:Body>
</soap:Envelope>