はじめに
ボンジュール(こんにちは)、Python界の殺伐担当です。さて、SOAP終了のお知らせからもう4ヶ月くらい経とうとしていますが、未だにSOAPを使っているシステムは多いわけでして、SOAPを喋れることが必要なくなったわけではありません。しかしながら、見たところPython製のSOAPライブラリは「これだっ!」って決定打がない感じで、Pythonを使ってSOAPサービスのテストをするときにはどれを使っていいか分かりにくいというのが現状だと思います。
そこでちょっと調べた
いくつかある中で、ヒット件数が多いのはSOAPpyとsoaplibまわり。この2つで後者のsoaplibが開発が活発なようなので流れを追ってみるとどうもこういうことらしい。
- soaplibが元々あった
- soaplibがrpclibとしてforkされsoaplib1.0系の後継になった
- rpclibが良さげなのでsoaplibにマージ。soaplib 2.0からはserver機能に集中し、clientはsoaplib.clientに寄せた。
ということなので、ネットで調べて適当にsoaplibのサンプルコードをコピペで動かそうとすると「clientなんてモジュールねーよ!」とか怒られる可能性大。大抵はsoaplibってなってるのをrpclibに置き換えれば動くと思う。*1
あとpywebsvcs系のライブラリ(SOAPpy, ZSI, wstools)は2007年くらいから開発止まってる感じだし、Python 2.6とかで動かせないから無視していいと思う。
自分が調べた感じだと次のような感じ。(執筆時現在の状況)
ライブラリ名 | server | client | PyPI | 依存ライブラリ | 最終更新 |
---|---|---|---|---|---|
soaplib | ○ | × | ○ | lxml, pytz | 2011/02/07 |
soaplib.client | × | △ | × | -- | 2011/01/25 |
rpclib | ○ | △ | ○ | lxml, pytz | 2010/11/26 |
suds | × | ○ | ○ | -- | 2010/12/31 |
pywebsvcs | ○ | ○ | × | -- | 2010/03 |
PySimpleSoap | ○ | ○ | ○ | (httplib2) | 2011/01/24 |
- PySimpleSoapでclient作ろうと思ったらhttplib2がいる
- soaplib.clientあるけどあんまり使えない雰囲気
- rpclibのものも同様なのでclientにはあんまり使えない
参考
ブログエントリ
- PythonでSOAPクライアント - スコトプリゴニエフスク通信
- id:perezvon の「Python製のSOAPライブラリはどれも腐ってんな!」というエントリ
- PythonでSOAPクライアント - hirokinkoの(胃痛にのた打ち回る)日記
- id:hirokinko のsudsでかつるエントリ
- It's time to say goodbye
- @shimizukawa 先生の調査記録
- API Only - Stack Exchange
- stackoverflowでも見てみたらやっぱりここにまとめたことそのまま書いてあった
Python本家
- WebServices - PythonInfo Wiki
- Python本家サイトでWebService系のライブラリについて触れてるページ。ここにあるライブラリ使えばいいと思う。
- Index of Packages : Python Package Index
- Soap Info Page
- Python界隈のSOAP情報のML。一応やりとりは活発にやってるっぽいし、soaplibの作者もまだ出入りしてる。
*1:これからやってみる