API の開発をしていて、[SOAP API]というものにたずさわったため、ここにメモを残します。
今回は WSDL がある [SOAP API] のメモになります。
python で Zeep というライブラリを使用して実装しました。
必要情報
WSDL とは
WSDLは Web Services Description Language の略で、Webサービスを外部のソフトウェアから接続・利用するための仕様(インターフェース)を記述することができる言語のことを指します。
WSDL については以下が参考になりました。
ja.wikipedia.org
SOAP とは
SOAPは Simple Object Access Protocolの略で、遠隔地にあるコンピューターのプログラムやデータにアクセスするためのプロトコルを指すそうです。
SOAP は XML や HTTP などをベースとしていて、SOAP サービスをもとにアクセス用のクライアントクラスやサーバークラスを自動生成できたりするらしいです。
Web サービスの一種で、REST などと比較されていて、REST は「リソース指向」、SOAP は「サービス指向」という違いがあるらしいです。
使い方
準備
- プロジェクトに SOAP サーバーの WSDL というサービス定義用の XML を返すURIを登録する。
- IDE(EclipseやVisualStudio) は WSDL から API を読み取り、裏でそのサービスをクラスオブジェクトとして定義する。
SOAP クライアントライブラリ
zeep インストール
$ pip install zeep
今回やったこと
wsdl はもらえることが前提で、この wsdl(Web Services Description Language)に API を利用するためのインターフェースが書いてあるので読み込んでクライアントを作成します。
クライアントを通じて API を実行します。
sampleコード
import pathlib from zeep import Client from zeep.transports import Transport from requests.auth import HTTPBasicAuth from requests import Session # 認証情報 username = "xxxxxxxx"; password = "xxxxxxxx"; WSDL_path = pathlib.Path.cwd().joinpath('wsdl.xml') # SOAP クライアント作成 session = Session() session.auth = HTTPBasicAuth(username, password) client = Client(str(WSDL_path), transport=Transport(session=session))