常田です
Bluemix自体の操作をアプリケーションから行うためにREST APIが提供されています。Bluemixの操作はCloud Foundryとおなじになりますのでそれに倣い利用してみます。
トークンの取得
Bluemix上の操作をするためのRESTを呼び出すためにはトークンが必要です。トークンを取得するためにloginサーバに対してログインを行いトークンを取得します。
- POST
- URL :http://login.ng.bluemix.net/UAALoginServerWAR/oauth/token
Headerとして以下の値を送信します。
- Authorization : Basic Y2Y6
- Accept : application/json
- Content-Type : application/x-www-form-urlencoded
(補足) Y2Y6は、username:cf (passwordなし)をBase64でエンコードしたものになります。
Bodyとして以下の情報を送ります
- grant_type=password&usernaem=USERNAME&password=PASSWORD
(補足) 上記のUSERNAME,PASSWORDはBluemixのログインID,パスワードを入れます。
上記を実行すると json として
{
“access_token”: “eyJh……”,
“token_type”: “bearer”,
“refresh_token”: “eyJh….”,
“expires_in”: 1209599,
“scope”: “openid cloud_controller.read password.write cloud_controller.write”,
“jti”: “3634a4….”
}
が取得することが出来ます。
アプリケーションのリストの取得
上記のトークンを利用して実際にBluemixに対してREST APIで処理(ここではアプリケーションのリストの取得)の呼び出しを行います。
- GET
- http://api.ng.bluemix.net/v2/apps
Headerとしては以下の情報を入れます。
- Authorization :bearer eyJh….
- Accept : application/json
(補足) Authorizationには、先ほど取得した “token_type access_token” (間はスペース)を入力します。
上記を実施するとJSONでアプリケーションのリストなどを取得できます。
まとめ
Cloud Foundry APIは整理され公開されています。
Bluemixを操作するためにはcfコマンドやbxコマンドが用意されていますがRESTAPIで操作が出来れば、例えばダッシュボードを作ったり定期的なジョブ処理などに組み込むことも出来るため出来ることの幅が広がりますので是非ご利用下さい。