ODC REST APIとは何か、最低限使うための実装については上記記事参照。認証情報の取得方法と利用方法については上記記事に譲り、ここでは記述しない。
ODC REST APIで取得できる情報の中にソースコードというものがある。それが実際に何を指すものか、試しに取得して確認してみたい。
ドキュメント
環境情報
ODC Studio (Version 1.6.7)
ODC Personal Edition
Consume REST APIを作成する
どのAPIもそうだが、ドキュメントページにあるOpenAPI specを使って、Consume REST APIを作成する。
参照を外したAPI Methodで使う分のStructureも同時にできてしまう。
その中に再帰構造のものがある。OutSystemsでは再帰的なStructureを作れないので、Consume REST APIで作成された不要なStructureは全て消しておく。
参考:
ソースコードを取得するAPI(/assets/{assetKey}/revisions/{revisionNumber}/source-codeへのGET)
要するに
OMLをダウンロードできるURLを取得するAPI。
必要な権限
ODC Portal > MANAGE > API clientsページで割り当てる。Asset management > Openが必要。
インターフェース
以下の通り。AccessTokenは認証のために手動で追加。

Input Parameter
- assetKey: Appを特定するキー。例えばODC PortalでAppを開いた時のURLから取れる
- revisionNumber: ODC StudioでPublishするごとに1つ増えていく数字。ODC Studioで対象Appを開き、ハンバーガーメニュー > App > Open other revision...を選択すると、Revision一覧を見られる
Output Parameter
- Response.sourceCodeBinaryUrl: このURLにアクセスすると、OMLファイルのバイナリをダウンロードできる
- Response.sourceCodeDigest: 恐らくダウンロードしたファイルの真正性を検証できるのだと思うが利用方法の記載がないので実際のところは不明。今回の検証では不要なので無視しておく
メモ
APIから帰ってきたsourceCodeBinaryUrlにブラウザでアクセスし、ダウンロードされたファイルの拡張子を.omlとすると、ODC Studioで問題なく開けた。
やはり、ここでいうソースコードはOMLバイナリそのものであって、そこから生成されるC#などのいわゆるソースコードではなかった。
応用方法検討
すぐに思いつくのは、OMLファイルの定期バックアップ。
(他にも使えそうなAPIはあるが)Portfolio APIの/deployed-assetは、Appの一覧、さらに各App内のRevison一覧を取得できる。つまり、開発StageのApp全ての最新Revisionを週次バックアップのような要件を満たせる。
