SAP Integration Suite でかんたんな WebAPI を作ってみた

# はじめに
この記事は [chillSAP 夏の自由研究2021](https://note.com/chillsap/n/n08ef5ec73b4c) の記事として執筆しています。

今回は、SAP Integration Suite を使って、WebAPI を作るまでをお伝えしたいと思います。
当記事は「SAP BTP トライアル環境」で試作したものです。


## SAP Integration Suiteとは

> SAP Integration Suite は、オンプレミスおよびクラウドベースのアプリケーションやプロセスを、SAP が管理するツールや事前構築済みコンテンツと、シームレスに統合するための iPaaS (Integration Platform as a Service) です。

引用元；https://www.sap.com/japan/products/integration-suite.html


## Integration Suite のインスタンス作成
まずはIntegration Suite のインスタンスを作成していきます。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/2e992b63-404b-7012-2e9e-3db0a697e22f.png)
![02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/8d3332c6-e5f8-ef06-72da-4b88df92c240.png)
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/322a3bb7-31d6-9e10-ec40-d2063e26be89.png)
しばらく待つと、インスタンスの作成が終わります。

## Integration Suite の機能を有効化
立ち上げた Integration Suite のアプリケーションへ遷移して、機能を有効化していきます。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/6065b095-fb60-ba40-8c0c-44eba3397675.png)
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/91ac45d1-f782-322c-9e7d-74a6fca2f4f0.png)
![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/3c47fe0c-e80e-e0b6-068c-eb726e1f32c9.png)
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/58527e9b-0435-9e40-2d76-7c31f5240883.png)
![08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/0f13f26b-c210-b257-22d6-7588671117dc.png)
![09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/57ed2777-7dd0-181b-46a9-7d66e97fd8e8.png)

## Role 割り当て
Integartion Suite の利用に必要なRole を割り当てます。
このロールは、Integration Suite の機能を有効化することで、ロールコレクションへ加わります。

以下のロールコレクションを 自身のUser へ 割り当ててください。
SAP BTP Cockpit の Role Collection から割り当てます。
```
Integration_Provisioner
PI_Business_Expert
PI_Administrator
PI_Integration_Developer
```
※割当画面は省略

ロールコレクションの割割り当てが終了したら、ログアウトしてから再ログインします。
※ログイン時にロールコレクションの変更が適用されるようです。

## Integration Suite で API を作成
これから Integration Suite のアプリケーションから API を作成します。
 
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/45d35dfd-b6dc-4c82-10a1-0cb4181b4127.png)
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/392fca29-b4b3-109d-a913-316b7aee2370.png)
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/a7f4c10b-b50f-03e5-6a21-dc7e0eb5b882.png)
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/c49ed579-683f-67f1-6dd5-604052b58ba2.png)
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/3ab0e6d2-b683-a14b-9760-416048715f69.png)
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/09e777a9-71d6-f305-5286-4789afe2b134.png)
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/05439f6d-89a3-5b74-705e-50064c1e3b9e.png)
ここで 「Content Modifer」を作成し、固定のJSON を返すようにします。
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/a5c11213-6561-0178-4036-83dab57fbc4f.png)

deploy ボタンを押下して、作成したAPI を配備します。
※初回deploy は時間がかかることもあるようです。

ここからは、デプロイが成功したかを確認します。
![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/ace00ca9-5f3c-1706-d77d-d00cbcfe1ac4.png)
![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/1838e9ef-1d5a-9a3d-a969-8c9d3c9b0cb4.png)
エンドポイントが表示されていて、「ステータスの詳細」にデプロイ成功と出ていることを確認します。
このエンドポイントは、後ほど実行する際に利用します。

## 実行準備
Integration Suite で WebAPI を作成したので、呼び出しに必要な認証情報を作成していきます。

今回は、認証情報として ServiceKey を使用するので、Process Integration Runtime を作成します。
![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/b7d6c36c-b4c9-ccae-55c3-6147f06e4410.png)
![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/a9c7a3b5-beed-b789-8334-1479bdb95d2f.png)
![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/8030390c-673f-181e-06b3-ed5950251ada.png)
![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/65ca9a85-9458-71a5-aeb6-c6ff76b44421.png)
![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/a54f04f8-d85d-c0b5-80aa-76b40a5cb308.png)

作成した ServiceKey の情報を確認します。
赤枠で囲った箇所は、後日実行時の認証に使用します。
![25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/2052f4d5-67ed-4552-d5fc-f222e092c829.png)

## WebAPI の実行
POSTMAN から実行します。
まずは認証情報の設定します。

認証の Type は 「Basic Auth」
Username と Password には、先程 ServiceKey 作成時に確認した
clientId と clientsercret を指定します。
![26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/6f2d57a4-2304-b0fc-38bc-b85d623fd86b.png)

デプロイ確認時に表示されていた エンドポイントを URL へ設定します。
※エンドポイント末尾の「*」を省略したURLを入力してください。
![27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/303235/8a50760c-de40-f98a-4da6-cfe777e4d0e2.png)

Sendボタンを押して、実行すると
作成したJSON が帰ってくることが確認出来ます。

# 最後に
今回は なるべく少ない手順で WebAPIの実行までを優先しています。
Integration Suite 上での アプリケーションの作成方法や、デバッグ方法について
機会があれば記事にしていきたいと思います。