もふもふ技術部

SOAPのWSDLについて調べてみた


今更ですがSOAPを利用したWEB APIを触ることになったのですが、SOAPの仕様がわけわからん過ぎて困ったので基礎に立ち返って調べてみました。

SOAPにはWSDLというファイルがあって、事前にAPI定義をXMLで公開するみたいです。まずは「そもそもWSDLには何が記述してある?」かを追って見ることに。

WSDLとは

  • そのWebサービスはどこにあるのか
  • そのWebサービスは、どんなフォーマットのメッセージを使って利用するのか
  • そのWebサービスは、どんな通信プロトコルを使ってメッセージをやり取りするのか

引用元:http://www.atmarkit.co.jp/ait/articles/0303/18/news003.html

SOAPとは、元はSimple Object Access Protocolの頭文字だったけど、もはやシンプルでもなんでもないものに複雑怪奇なものになっているとか。

WSDLのメリットは下記のようなのがあるとのこと。

Webサービスのために、そのインターフェイスを記述したWSDL文書が用意されていることは、Webサービスの利用者に大きな利得となる。開発ツールにWSDL文書を読み込ませることによって、Webサービスを呼び出すモジュールのコードを自動生成できるようになるからだ。

ふむふむ。

どの旅行代理店でもほぼ共通した内容だ。このような場合、業界団体では、Webサービスとして公開するホテル予約サービスシステムのインターフェイスを標準化することが考えられる。業界団体は、標準化されたインターフェイスの仕様を記述したWSDL文書を作成し、それを一般に公開することになるだろう。

昨今ではどこのWEBサービスでもSOAPを使っているところはほとんどないので、目論見通りにはならなかったみたいですね。

(1)WSDL文書は抽象的な定義と具体的な定義の、2つのステップで構成されている

だからこんなに定義の重複っぽいのが目につくのか。

この辺りを参考にさせていただきました。

http://www.atmarkit.co.jp/ait/articles/0304/24/news002.html

サンプルWSDL

一番シンプルなwsdlをめざして作ったけど既に謎だらけ。一つ一つ調べてみてコメントいれました。

率直な感想。
wsdlsoap:addressのlocationだけあればあとの定義いらなくね?と思った。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。