プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

SOAPとは?API通信としての使われ方やRESTとの違いなど

  • 2020年6月17日
  • 2020年6月17日
  • その他
  • 3666view
  • 0件

はじめに

この記事はSOAPってなんぞや?というのをわかりやすく理解するため、深く掘り下げた内容ではありません。使われ方やRESTとの違いなどを説明しています。

SOAPとは、Simple Object Access Protocolの略

コンピュータ間のメッセージをやり取りする通信プロトコルの仕様のことのようですね。

似たような仲間にはRESTなどがある(こちらはよく聞きますね)。
ではSOAPの特徴について次で説明していきます。

SOAPの特徴

通信内容

通信内容の記述はXMLを使うため、プログラミング言語やプラットフォームに依存しないようになっている。

通信手段

通信手段はHTTPに限らずSMTP、FTPなど任意の通信プロトコルを使用することができる。

既に普及している既存のプロトコルから通信手段を選択することができるため、ファイヤウォールなどを安全に通過させることができる。

RESTとの違い

そもそもの思想が違うようなのですが、簡単に書くとこんな感じ。

RESTは通信手段(運び方)が決まっていて(HTTP)、シンプルに記述できる。
もはやWeb=RESTというイメージの定着。

SOAPはもっといろいろできる便利屋さん。
通信手段はいろいろできる。

(他サイトのでの例えがとてもわかりやすかったので表現を真似させてもらうと、バイクで運んでも、飛行機で運んでもいい)

SOAPの構成

SOAPのメッセージの構成は以下の3つに分かれます

  • SOAPエンベロープ(envelope:封筒)
  • SOAPヘッダ(SOAP header)
  • SOAPボディ(SOAP body)

SOAPエンベロープ

SOAPメッセージを定義していることを示すために必ず必要。
SOAPヘッダとSOAPボディを内包している。

SOAPヘッダ

宛先などの情報やルールを定義する項目。
SOAPヘッダはオプションで任意の項目。必要な場合に定義します。

SOAPボディ

送受信する内容本体を定義する項目。

最後に

なんとなくSOAPとは?という部分をまとめました。
冗長な定義が必要な面もあるが、古く廃れた技術なんかではないっていうことですね。