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は以下を

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でクラスを生成するのもありです。

スタブ参考

Resource関係 http://maven.wso2.org/nexus/content/repositories/releases/org/wso2/carbon/registry/org.wso2.carbon.registry.resource.stub/4.6.2/

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に格納されてる。