0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ODC REST API 4: ソースコード取得

Posted at

ODC REST APIとは何か、最低限使うための実装については上記記事参照。認証情報の取得方法と利用方法については上記記事に譲り、ここでは記述しない。

ODC REST APIで取得できる情報の中にソースコードというものがある。それが実際に何を指すものか、試しに取得して確認してみたい。

ドキュメント

Asset Repository API

環境情報

ODC Studio (Version 1.6.7)
ODC Personal Edition

Consume REST APIを作成する

どのAPIもそうだが、ドキュメントページにあるOpenAPI specを使って、Consume REST APIを作成する。

今回必要なMethodは以下でチェックをつけたもののみ。
image.png

参照を外した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は認証のために手動で追加。
image.png

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を週次バックアップのような要件を満たせる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?