[CAIレシピ] REST APIによりファイルを取得するサービス接続

## はじめに

この記事では、[Secure Agent実行環境のファイルダウンロード](https://qiita.com/shunsuzu/private/c9cce26ab766f2f0dd27)で作成した __recipe-psa-fileDownload__ を使って、サービス接続にてREST APIを実行してファイルを取得する実装を確認します。

なお、この記事は次の記事の内容を理解していることを前提としています。

- [はじめてCAIを使う際に](https://qiita.com/shunsuzu/private/12b8dbd08a30efa0003a)
- [プロセスの作成と実行(匿名認証と基本認証)](https://qiita.com/shunsuzu/private/01d91caedb92bd7781ea)
- [割り当てステップと、各種変数フィールドの利用](https://qiita.com/shunsuzu/private/fae696539cd245828848)
- [サービス接続によるREST APIの実行](https://qiita.com/shunsuzu/private/f2783c55a4d75661fc0b)



## REST APIによりファイルを取得するサービス接続

### サービス接続の作成

1. サービス接続を次の設定で作成します。
    - 名前を __recipe-svcConn-fileDownload__ とする
    - アクション __getAction__ を追加する

1. __バインディング__ タブを選択して __URL__ に[Secure Agent実行環境のファイルダウンロード](https://qiita.com/shunsuzu/private/c9cce26ab766f2f0dd27)で作成した __recipe-psa-fileDownload__ のサービスURLを指定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/76161df6-2abf-7574-89f5-ab4b25342a17.png)


1. __出力__ タブを選択、出力フィールドの追加ボタンをクリックして、出力フィールドを次のように定義します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/002f4cc1-08b0-4c06-0d68-87f9cfd7a090.png)

1. __テスト結果__ タブを選択して、__サーバーのテスト__ をSecure Agentで実行する設定として __テスト__ を実行して、テスト接続に成功する動作を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/ab52a476-6970-d50e-4d5f-58fdf713cabf.png)

1. 作成したサービス接続を 保存 して パブリッシュ を実行します。

### アプリケーション接続の作成

1. アプリケーション接続を次の設定で作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/e0561b83-cd50-9759-4730-5585193b9dc9.png)
    - 名前を __recipe-appConn-svcFileDownload__ とする
    - タイプを __recipe-svcConn-fileDownload__ とする
    - デプロイ先を __Secure Agent__ とする
1. 保存、パブリッシュ を実行します。


### CAIプロセスの作成

次の手順では作成したサービス接続・アプリケーション接続を使用するCAIプロセスを作成しています。

1. CAIプロセスを次の設定で作成します。
    - 名称を __recipe-pca-svcFileDownload__ とする
    - __匿名アクセス__ を許可する
    - __Secure Agent__ にデプロイする

1. 出力フィールド __outputAttach__ を __タイプ=添付(Attachment)__ として定義します。

1. CAIプロセスが次の順に実行されるように各種ステップを追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/70090014-1e91-cda1-581e-7af69a280ed5.png)


1. サービスステップを選択して、次のように設定します。
    - __サービスタイプ__ を __接続__ とする
    - __接続__ を __recipe-appConn-svcFileDownload__ とする
    - __アクション__ を __getAction__ とする

1. 割り当てステップを選択して、出力フィールド __outputAttach__ にサービス接続の出力フィールド __getActionOut__ を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/8b7af398-6989-cdec-348f-edf44c69225a.png)

1. 保存、パブリッシュ を実行します。


### CAIプロセスの実行

いつもはcurlコマンドで動作確認をしていますが、ファイルのダウンロードに関しては[Secure Agent実行環境のファイルダウンロード](https://qiita.com/shunsuzu/private/c9cce26ab766f2f0dd27)で作った  __recipe-psa-fileDownload__ の実行時にもcurlコマンドで動作を確認していました。
毎回同じ方法で確認すると、おもしろみが無いので今回はWEBブラウザで動作確認をしてみました。ファイルダウンロード時によく見る動作ですね！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074553/c42f7c71-a1dc-c1e9-b564-0bf4a0a88429.png)
なお、Secure AgentはLinux環境で動かしており、別環境(Windows)からアクセスするためにサービスURL(`https://localhost:7443/process-engine/public/rt/recipe-pca-svcFileDownload
`)のホスト名を変更しています。


## 参照

- [Qiita - IICS CAIの実装レシピ - マスターページ](https://qiita.com/shunsuzu/private/3d1971ef6e3b993516aa)