包裝程式 API 套件元件
包裝函式 API 套件包含包裝函式 API 的封存檔案、用於部署的 Terraform 指令碼,以及對應的 Postman 集合。
- 包裝程式 API 封存檔名稱為
<ChaincodeName>WrapperAPI.zip
。它也包含必須部署到堆疊資源的 Terraform 命令檔。 - Postman 集合檔案名稱為
<ChaincodeName>_WrapperAPI.postman_collection.json
。您可以使用此集合來呼叫所有包裝函式 API。
包裝函式 API 套裝程式
包裝函式 API 套裝程式包含 Terraform 命令檔,可佈建建立包裝函式 API 所需的所有 Oracle Cloud Infrastructure (OCI) 資源。每個 API 都有額外的 Terraform 支援檔案和 Oracle Functions 資料夾。包裝函式 API 套裝程式會建立下列 OCI 資源。
- 虛擬雲端網路 (VCN):建立用於通訊的網路基礎架構。
- 應用程式 (Oracle Functions):部署無伺服器函數以處理 API 邏輯。
- API 閘道:建立閘道以管理及遞送 API 要求。
- API 部署:在 API 閘道上設定及部署 API。
- API 部署原則:設定必要的 IAM 原則以啟用安全存取。
- OCI 登錄:提供用於管理 Docker 映像檔的容器登錄。
產生包裝函式 API 之後,如果您想要變更任何組態變數,可以在 Visual Studio 程式碼中加以更新,或者您可以擷取包裝函式 API 套裝程式,並以更新的端點和資源名稱更新
terraform.tfvars
檔案。編輯 terraform.tfvars
檔案的 function_paths
變數以更新端點。function_paths
變數是 JSON 物件,其中索引鍵是 API 名稱,而值是另一個具有下列兩個索引鍵的 JSON 物件:
path
:定義 API 的端點type
:指定要求類型 (POST 或 GET)
function_paths
變數的範例。function_paths="{\"activateAccount\":{\"path\":\"/activateAccount\",\"type\":[\"POST\"]}}"
Postman Collection
Postman 集合包括所有 API 的更新端點和有效負載。下列程式碼顯示有效負載範例。
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"applicationGroups": "[\"application_groups value\"]",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
"endorsers": {{endorsers}}
}
下表顯示 Postman 集合變數。
變數 | 描述 | 預設值 |
---|---|---|
bc-admin-user |
管理員使用者,擁有可存取所有 POST 要求的管理員角色。依照預設,此使用者是鏈碼中所有 POST 要求的呼叫者。 | bc-admin-user 值 |
bc-admin-user-password |
管理員使用者密碼。 | bc-admin-user-password 值 |
bc-org-id |
所有 POST 要求中的預設組織 ID,其中 orgId 是參數名稱
|
bc-org-id 值 |
bc-user-id |
所有 POST 要求中的預設使用者 ID,其中 userId 是參數名稱
|
bc-user-id 值 |
bc-token-id |
所有 POST 要求中的預設權杖 ID,其中 tokenId 是參數名稱
|
bc-token-id 值 |
endorsers |
背書人陣列會列出特定的對等 (例如:peer1、peer2) 來認可此交易。 | ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"] |
api-gateway-endpoint |
每個要求的端點,可作為包裝函式 API 端點的基礎路徑。
如果 API 少於 50 個,則會使用單一端點。如果 API 超過 50 個,端點會根據 API 數目動態產生為 api-gateway-endpoint1、api-gateway-endpoint2 等等。 |
https://xyz.apigateway.region.oci.customer-oci.com/CBDC |
peer |
此變數僅適用於機密鏈碼包裝函式 API Postman 集合,此集合需要所有 setter API 的對等標頭。 | 組織 -xyz-abc.blockchain.ocp.oraclecloud.com:20009 |
部署包裝函式 API 套件之後,堆疊資源部署的輸出會是包含閘道端點值的 JSON 物件。如果您產生超過 50 個 API,系統會產生多個閘道端點,每 50 個 API 會產生一個端點。您必須更新與這些端點相關的 Postman 收集變數。Postman 集合中的端點相關變數必須使用 Stack Resource Manager 中包裝函式 API 套裝程式部署輸出的適當值進行更新。
包裝函式 API Postman 集合中的所有 setter API 都包含要求有效負載中的
endorsers
或 sameOrgEndorser
參數。指定哪些 API 需要 sameOrgEndorser
參數的資訊,是在鏈碼中 .ochain.json
檔案的 sameOrgEndorserOptionInWrapperAPI
參數中定義。此參數中列出的 API 在其有效負載中將 sameOrgEndorser
設為 true。所有其他的 setter API 將改為包含 endorsers
參數。以下範例顯示批發 CBDC 鏈碼的參數。"sameOrgEndorserOptionInWrapperAPI": ["addConversionRate","addTokenAdmin","addTokenAuditor","approveBurn","approveMint","burnTokens","createExchangePoolAccounts","deleteHistoricalTransactions","initializeCBDCToken","initializeExchangePoolUser","mintWithFundingExchangePool","rejectBurn","rejectMint","removeTokenAdmin","removeTokenAuditor","requestBurn","requestMint","updateCBDCToken","updateConversionRate"]
您可以視需要自訂 .ochain.json
檔案中的 sameOrgEndorserOptionInWrapperAPI
參數。當您產生包裝函式 API 時,指定的 API 將在其有效負載中包含 sameOrgEndorser
參數作為 true
。
如需有關使用 Postman 集合的詳細資訊,請參閱下列主題。