ODC REST APIとは何か、最低限使うための実装については上記記事参照。認証情報の取得方法と利用方法については上記記事に譲り、ここでは記述しない。
まず最初に、上記の記事でも動作確認に使ったPortfolio APIの使い方と、何を取れるのかをみていく。
ドキュメント
環境情報
ODC Studio (Version 1.6.3)
ODC Personal Edition
Consume REST APIを作成する
ODC REST API 1: 認証 > 3. アクセストークンを利用してAPIを呼ぶの手順で、Choose methodsのダイアログで「Select all」を選択し、全メソッドに対するActionを生成する。
後続の手順は同じ。
/environmentsへのGET
要するに
ODC内のStage情報を取得するAPI。
他のAPIでStageのKeyが必要だったりするので、そのための情報取得に使う。
あまり変更される情報ではないから、一定間隔で実行して結果はキャッシュでもいい気がする。
必要な権限
ODC Portal > MANAGE > API clientsページで割り当てる。Stage > View stageを割り当てられたAPI clientを使っている場合に、割り当てられたStageの情報が返ってくると思われる。
インターフェース
Input ParameterのAccessTokenは手動で追加したもの(詳細は前掲の記事参照)。

Output Parameter ResponseのresultsはListになっている。
つまりStageのListが返ってくる。
使い方
パラメータがないので、Action Flowに配置するだけで良い。
メモ
Output Parameter Response.resultsの各要素について。
- keyがStageのキーであり、他のAPIでStageを指定する時にはこのkeyを使う
- hostnameに入るのは、そのPEのDevelopment Stageのエンドユーザーアプリ配置先のホスト
- purposeには、Development・NonProduction・Productionという値が入る。これはそのStageの用途を示す。意味としてはそのまま。Developmentは開発用。このStageで作成されたコンテナが次以降のStageに移送される。Productionはいわゆる本番。NonProductionはそれ以外
- regionとしてはap-southeast-1が返ってきた。おそらくAWSのRegionなのでSingaporeでホストされているようだ
- hostingはoscloud。おそらくOutSystemsが管理するクラウド環境でホストされているという意味。これからセルフホストのODCがリリースされたら、そのODCはselfhostedを返すはず
/deployed-assetsへのGET
注意
このAPIはPEでは十分な検証が行えないタイプと思われる。
確認はPEで行ったため、通常のODCで実行したら、少し違うところがあるかもしれない。
要するに
Asset(App/Library/Workflow) 別に各Stagehへのリリース情報リストを取得する。
必要な権限
ODC Portal > MANAGE > API clientsページで割り当てる。Stage > View stageを割り当てられたAPI clientを使っている場合に、割り当てられたStageの情報が返ってくると思われる。
インターフェース
Input Parameter
Input ParameterのAccessTokenは手動で追加したもの(詳細は前掲の記事参照)。

environmentKeyからpermissionFilterまでは検索条件、limit・offset・sortはページング条件。動作確認目的では全て未指定で実行できた。
Output Parameter
項目が多いので横に並べたが、pageとresultsがResponseの直接のAttribute。

pageについてはページングに使うものなので、一旦置いておく。
resultsの要素は、Asset。AssetはODC PortalのAppsページやODC Portalで作成するトップレベルの開発要素。つまりApp・Library・Workflow。
Assetごとに、そのdeployments Attribute(List)に各Stageへのリリース履歴が載りそうであるが、PEではそこまで確認できなかった。
PEの場合、どのAssetを選んでもdeploymentsには1レコードしか入っておらず、最新のPublish時点の情報が入るようだ。
使い方
AccessTokenだけ渡せば良い。検索条件は必須ではないので絞り込みたい時にだけ指定する。ページング条件は、動作確認程度なら指定しなくても良いが、ページサイズの最大は100のようなので、普通の環境の実用アプリでは指定することになる。
ページングの仕組みについては以下を参照。
Page through lists of resources
メモ
Assetの名前はResonse.results各要素直下でなく、その下のdeploymentsから取ることになる。PEで試した範囲では、名前を変えてPublishしてもdeployments Listには最新の名前が入った1要素しか入らなかった。
environmentKeyでStageを絞り込み、deploymentDateTimeでリリース日時がわかるので、例えば週次や月次でチェックすることで更新されたAssetのリストを作成するのにも使えそう。
