如何在 SAP BTP 平臺上重用另一個已經開發好的 service

注销發表於2022-03-12

假設我們的 SAP Business Technology Platform 平臺上已經開發好了一個 products-service 專案:

我們希望在另一個 bookstore 專案裡,重用 products-service 專案。

開啟 products-service 專案,在 package.json 裡找到其 name 的值:@sap/capire-products

建立一個 bookstore 專案:

mvn -B archetype:generate -DarchetypeArtifactId=cds-services-archetype -DarchetypeGroupId=com.sap.cds \
-DarchetypeVersion=1.17.0 \
-DgroupId=com.sap.cap -DartifactId=bookstore

使用 open workspace 的功能開啟這個專案:

執行如下命令列,安裝指向 products-service 專案的依賴:

npm install $(npm pack ../products-service -s)

成功安裝完畢,現在在 bookstore 專案裡,就能看到其依賴 products-service 的實現了:

npm pack 從 products-service 建立一個 tarball,然後直接將其用作書店應用程式中的依賴項。 有關 npm 包的更多資訊:https://docs.npmjs.com/cli-co...

使用下面的命令列安裝依賴:

npm install && npm dedupe

現在 bookstore 專案的 package.json 裡,就能看到 products-service 專案的依賴了。

在 db 資料夾下新建一個 schema.cds 檔案,維護 domain model:

在 srv 資料夾下建立一個 services.cds 檔案:

在 db 資料夾下新建一個 data 資料夾,然後把 4 個 sample data 的 csv 檔案放置進去。

使用命令列部署 domain model 到 sqlite:

cds deploy --to sqlite

自動生成了一個 sqlite.db 檔案,該檔名維護在 package.json 檔案裡,檔案位於專案根目錄下:

修改專案裡的 Application.yaml 檔案,將資料庫的位置指向剛剛執行的命令列 cds deploy --to sqlite 生成的 sqlite.db 檔案。

第 11 行設定成 never 的原因是因為我們已經用命令列 cds deploy --to sqlite 對資料庫進行了初始化操作。

修改 Business Application Studio 的 settings.json 檔案,新增如下內容:

     "sqltools.connections": [
         {
             "name": "sqlite",
             "dialect": "SQLite",
             "database": "/home/user/projects/bookstore/sqlite.db"
         }
     ]

選擇 SQLTools

可以看到剛才透過 csv 檔案插入的資料:

使用如下 url:

https://workspaces-ws-pdwk4-a...

就能訪問到之前透過 sap.capire.bookstore-Books.csv 插入到 SQLite 裡的資料了:

相關文章