API の開発をしていて、[SOAP API]というものにたずさわったためモを残します。
今回は WSDL がある [SOAP API] のメモになります。
python で Zeep というライブラリを使用して実装しました。
必要情報
WSDL とは
WSDL については以下が参考になりました。
ja.wikipedia.org
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))