【CAP】CAPで作ったODataをUI5アプリで使う(2) UI5アプリの作成
はじめに
この記事は、「CAPで作ったODataをUI5アプリで使う」シリーズの2回目です。
今回は、前回作成したODataサービスを利用するUI5アプリを作成してCloud Foundryにデプロイします。
<前回の記事>
【CAP】CAPで作ったODataをUI5アプリで使う(1) CAPサービスの作成
CAPサービスの利用方法について
CAPで作成したODataサービスをUIで利用するには、2通りの方法があります。
一つは、以下のように同じプロジェクトにODataサービスとUIを同居させる方法です。もう一つは、ODataサービスとは別のUI用のプロジェクトを作ってODataサービスを参照する方法です。
今回は、後者の方法で実装してみます。
ステップ
- UI5プロジェクトを作成
- ODataモデルを追加する
- App Routerの設定
- ビューにデータを表示する
- ローカルでテスト
- デプロイ
事前準備
generator-easy-ui5をインストール
https://www.npmjs.com/package/generator-easy-ui5
これは、UI5プロジェクトのテンプレートを生成してくれるツールです。
Cloud FoundryのサブアカウントにDestinationを登録
前回作成したODataサービスのURLをDestinationとして登録しておきます。
1. UI5プロジェクトを作成
プロジェクトを作成したいディレクトリに移動し、以下のコマンドを実行します。
yo easy-ui5
プロジェクトの設定についていくつかの質問がされるので、以下のように回答します。画面はすべて回答し終わった後のものですが、実際は1ステップごとに選択肢が出てきて、その中から選ぶ形式です。
以下のようなプロジェクトが生成されます。
webappフォルダはuimoduleの下に入っています。
2. ODataモデルを追加する
以下のコマンドを実行します。
yo easu-ui5:newmodel
以下のように質問に回答します。最後の"Overwrite uimodule\webapp\manifest\json?"という質問には、"a"と入力すると上書きがされます。
manifest.jsonに以下の設定が追加されます。(※localUriのスラッシュが多いので修正しておきましょう)
3. App Routerの設定
App Routerはアプリケーションの入り口になり、リクエストを適切な宛先に振り分ける役割があります。App Routerについて詳しくは以下のSAP Blogをご参照ください。
https://blogs.sap.com/2020/04/03/sap-application-router/
approuterフォルダの中にあるxs-app.jsonファイルに設定を追加します。
routesに以下を追加します。これの意味するところは、/cap-products/を含むリクエストが来たら、cap-productsという宛先に転送するということです。cap-productsは事前準備で登録したDestinationの名前です。
{
"source": "^/cap-products/(.*)$",
"target": "$1",
"authenticationType": "xsuaa",
"destination": "cap-products",
"csrfProtection": false
}
4. ビューにデータを表示する
Main.view.xmlに以下を追加します。
<List
headerText="Products"
items="{
path: '/Products'
}" >
<StandardListItem
title="{product}"
description="{description}"/>
</List>
5. ローカルでテスト
ローカル実行用のdestination追加
ローカルでテストするためには、uimoduleの下にあるui5.yamlファイルにdestinationの設定を追加する必要があります。xs-app.jsonでcap-productsという宛先を指定しましたが、ローカルではcap-productsが何を指すのかがわからないからです。
もとは以下のようになっています。
destinationsの下にcap-productsのURLを追加します。
実行
以下のコマンドを入力します。
npm start
※startスクリプトはpackage.jsonで定義されています
しばらくするとブラウザが立ち上がり、データが表示されました。
裏では
ui5-middleware-cfdestinationの設定をもう一度見てみると、portが1091となっています。
ブラウザにlocalhost:1091/cap-products/と入力すると、ODataサービスのトップ画面が表示されます。つまり、1091番ポートでapprouterが立ち上がり、リクエストを中継してくれているのです。
6. デプロイ
最後に、プロジェクトをCloud Foundryにデプロイします。package.jsonを見るとdeployというスクリプトがあるのでこれを使います。このスクリプトはビルドとデプロイを同時にやってくれます。
以下のコマンドを入力します。(※事前にcf loginしておきます)
npm run deploy
Author And Source
この問題について(【CAP】CAPで作ったODataをUI5アプリで使う(2) UI5アプリの作成), 我々は、より多くの情報をここで見つけました https://qiita.com/tami/items/55153c92fffc159e40d8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .