使用 SAP Cloud SDK 開發應用時,如何通過環境變數的配置避免硬編碼
阿新 • • 發佈:2021-07-22
Jerry 之前的文章SAP S/4HANA Cloud SDK 入門介紹介紹瞭如何在第三方應用裡,呼叫 SAP S/4HANA Cloud SDK,消費 S/4HANA 系統的 OData 服務。
當時我的程式碼裡,指向 SAP API Business Hub Sandbox 的 url 是硬編碼的,不夠靈活。本文介紹如何通過環境變數的方式來配置這些 endpoint.
在專案根目錄新建一個 .env 檔案,內容如下:
destinations=[{"name": "sandbox", "url": "https://sandbox.api.sap.com/s4hanacloud"}]
執行如下命令列:
npm install @nestjs/config
為了載入 .env 檔案中定義的環境變數,我們需要將 config 包提供的 ConfigModule 新增到應用程式的 @Module 定義中。 開啟 app.module.ts 並使用以下程式碼更新它:
原始碼:
import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { BusinessPartnerController } from './business-partner.controller'; @Module({ imports: [ConfigModule.forRoot()], controllers: [AppController, BusinessPartnerController], providers: [AppService], }) export class AppModule {}
將應用程式碼裡 execute 方法的引數,從硬編碼的 url,改成傳遞一個 .env 檔案裡維護的 Destination 名稱即可。