WSO2 API Managerの管理者向けAPI実行 - WSO2 Admin Services
概要
管理者向けAPIの呼び出し方法を比較し、実際にWSO2 API Managerの管理者向けAPIを呼び出してみます。
API実行の選択肢
WSO2 API Managerの管理者向けAPIは、以下のドキュメントにまとまっています。
Published APIs - API Manager 2.0.0 - WSO2 Documentation
# 2.1.0がリリースされたというのに、ドキュメントはまだ追いついていないようです。。。
APIには大きくRESTのものと、SOAPのもの(WSO2 Admin Services)があるようです。
REST APIは以下を
- Publisher APIs - API Manager 2.0.0 - WSO2 Documentation
- Store APIs - API Manager 2.0.0 - WSO2 Documentation
- Token API - API Manager 2.0.0 - WSO2 Documentation
- Admin APIs - API Manager 2.0.0 - WSO2 Documentation
SOAP API (WSO2 Admin Services)は以下を見ると良いです。
ざっと使ってみたところ、比較すると以下のような感じです。
方式 | プロトコル | できること | アクセス制御 | ドキュメント | コスト | 性能 |
---|---|---|---|---|---|---|
REST API | REST(HTTPS) | △ 一部 |
◯ ロールベースで細かくできる |
◯ 豊富 |
△ 要クライアント開発 |
☓ AccessTokenを毎回発行 |
WSO2 Admin Services | SOAP(HTTPS) | ◯ なんでも(?) |
△ 管理者か否かのみ |
☓ ほぼない |
△ 要API調査 |
◯ |
膨大なソースコードにくじけない人であれば、WSO2 Admin Servicesが断然おすすめです。
今回は、Resource*1を編集してみたいと思います。
REST APIではできなかったので、WSO2 Admin Servicesを使いました。
成果物はこちらです。 github.com
以下説明です。
プロジェクト作成
WSO2 API ManagerのライブラリはMavenリポジトリで公開されているので、Mavenプロジェクトとして作成します。
pom.xmlはこんな感じ。
wso2am-client-example/pom.xml at master · uphy/wso2am-client-example · GitHub
実行
まずはWSO2 API Managerテスト用のクライアントクラス経由でAPIを実行し、それからより柔軟な方法としてスタブを直接呼び出してAPIを実行する方法を説明します。
クライアントクラス利用
まずは以下のWSO2 API Managerテスト用のクライアントクラスを活用してみたいと思います。
product-apim/ResourceAdminServiceClient.java at v2.1.0 · wso2/product-apim · GitHub
構成:
サンプルアプリ => クライアントクラス => サービススタブ ==(SOAP)==> サービス
サンプルアプリ: gist.github.com
L.12は、サーバー(WSO2 API Manager)のキーストアを設定しています。
設定しないと証明書エラーで実行できません。
クライアントクラスは一部の処理にしか対応していないので、スタブを直接触ったほうが良いです。
スタブ直接利用
構成:
サンプルアプリ2 => サービススタブ ==(SOAP)==> サービス
サンプルアプリ2: gist.github.com
L.22-25は、ベーシック認証のヘッダを設定しています。
先程のクライアントクラスを利用したときには、クライアントクラスの中でやっていました。
スタブの探し方
あまり効率がいい方法がないです。適当です。
この辺のスタブを利用したテスト用クラスを見たり、この辺の*.stubモジュールをIDEに取り込んで、クラスの構造眺めたりして探すと良いと思います。幸い名前は結構分かりやすいです。
自分でビルドするのが苦じゃない方は、WSO2 Admin Services - API Manager 2.0.0 - WSO2 Documentationのように、サービス名を調べて、WSDLを生成して、WSO2 API Managerのbin/wsdl2java.shでクラスを生成するのもありです。
スタブ参考
Gateway関係(API追加、削除、取得) http://maven.wso2.org/nexus/content/repositories/releases/org/wso2/carbon/apimgt/org.wso2.carbon.apimgt.gateway.stub/6.1.66/
*1:CarbonのWebページからしか編集できない設定ファイルたち。おそらくDBに格納されてる。