使用 CLI 產生包裝函式 API
增強版的 Blockchain App Builder 包含 generateFnAPI
命令,可為鏈碼專案中的所有控制器 API 產生包裝函式 API。
Usage: ochain generateFnAPI [options]
Generation of WrapperAPI package for controller functions
Options:
-h, --help Output command usage information
-D, --debug Enable debug logging
-m, --mapping <mapping> Info about functions endpoints mapping is mandatory.
-c, --config <config> Info about configuration variables is mandatory.
-a, --all <all> Generate the wrapperAPI package for entire controller functions
-p, --project <path> Path to the Ochain chaincode project to generate the WrapperAPI package. If not specified, it defaults to current directory.
下列範例顯示如何為本機鏈碼專案產生包裝程式 API。
ochain generateFnAPI --mapping <info object about function mapping> --config <info about the config variables> --project <Path to the Ochain chaincode project> --out <Path to the generated postman collection>
當您執行 generateFnAPI
命令時,系統會提示您是否覆寫選擇位置中任何先前的包裝函式 API 套裝程式。
API 閘道會將單一部署中可建立的路由數目限制為 50 個路由。如果您嘗試使用 generateFnAPI
命令來產生 50 個以上的包裝函式 API,系統會提示您是否建立多個閘道。使用相同的部署路徑前置碼建立多個閘道時,會在所有包裝程式 API 端點之間維持一致的基礎路徑。如果您選擇不要建立多個閘道,將會取消產生包裝函式 API。
命令選項
- -m、--mapping <mapping>
- 對應選項定義控制器 API 的組態、指定端點名稱以及哪些控制器 API 需要產生包裝函式 API。對應是索引鍵 / 值組的 JSON 物件,其中索引鍵是控制器 API 的名稱,值是要與該控制器 API 關聯的自訂端點。
下列範例顯示使用擴充「權杖分類標準架構」標準之鏈碼的對應。
ochain generateFnAPI --mapping '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest", "approveBurn": "/approveBurnTest", "createAccount": "/createAccount", "associateTokenToAccount": "/associateTokenToAccountTest", "getAllOrgAccounts": "/getAllOrgAccounts"}' --config <info about the config variables> --project <Path to the Ochain chaincode project> --out <Path to the generated postman collection>
- -c、--config <config>
- 組態選項可用來傳送包裝函式 API 套件所需的組態變數。它是索引鍵 / 值組的 JSON 物件,其中索引鍵是組態變數名稱,值是組態變數值。產生包裝函式 API 套件需有所有組態變數。如果下列任一變數未傳遞至命令,則產生包裝函式 API 會失敗。您可以擷取包裝函式 API
.zip
檔案,在建立包裝函式 API 之後編輯這些值。變數名稱 描述 compartment_ocid
Oracle Cloud Infrastructure (OCI) 中區間的 OCID。 compartment_name
OCI 區間的名稱。 identity_domain
要使用的識別網域。 blockchain_channel
部署鏈碼之 Oracle Blockchain Platform 通道的名稱。 blockchain_url
與鏈碼部署關聯的 Oracle Blockchain Platform URL。 blockchain_chaincode
要產生包裝函式 API 的鏈碼名稱。 blockchain_sync
要包含在 API 呼叫之有效負載中的同步值。 blockchain_timeout
要包含在 API 呼叫之有效負載中的逾時值。 vcn_display_name
OCI 虛擬雲端網路的顯示名稱。 application_display_name
OCI 應用程式的顯示名稱。 gateway_display_name
API 閘道的顯示名稱。 deployment_display_name
API 閘道中部署的顯示名稱。 deployment_path_prefix
API 閘道中的部署路徑前置碼,指定部署路由的路徑。 deployment_path_prefix
變數的開頭必須是斜線 (/)。ocir_repo_name
OCI 登錄儲存區域名稱。 ocir_repo_name
變數必須全部為小寫字母。policy_name
可透過組織內群組和區間的定義權限,對 API 進行控制管理和存取的原則名稱 下列範例顯示使用擴充「權杖分類標準架構」標準之鏈碼的對應。
ochain generateFnAPI -m '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest", "approveBurn": "/approveBurnTest", "createAccount": "/createAccount", "associateTokenToAccount": "/associateTokenToAccountTest", "getAllOrgAccounts": "/getAllOrgAccounts"}' -c '{"compartment_ocid": "compartment_ocid value", "compartment_name": "compartment_name value", "identity_domain" : "OracleIdentityCloudService", "blockchain_channel": "default", "blockchain_url": "blockchain_url value", "blockchain_chaincode": "blockchain_chaincode value", "blockchain_sync": true, "blockchain_timeout": 6000, "vcn_display_name": "vcn_display_name value", "application_display_name": "application_display_name value", "gateway_display_name": "gateway_display_name value", "deployment_display_name": "deployment_display_name value", "deployment_path_prefix": "deployment_path_prefix value", "ocir_repo_name": "ocir_repo_name value", "policy_name": "policy_name value"}'
- -a、--all <all>
- 所有選項都會為鏈碼中定義的所有控制器 API 產生包裝函式 API。如果是
true
,此選項會覆寫對應選項。每個包裝函式 API 都會被指派一個與 API 名稱對應的預設端點。如果指定所有選項,您仍必須為對應選項提供空白的 JSON 物件 ({})。下列範例顯示使用擴充「權杖分類標準架構」標準之鏈碼的對應。
ochain generateFnAPI -m '{}' -c '{"compartment_ocid": "compartment_ocid value", "compartment_name": "compartment_name value", "identity_domain" : "OracleIdentityCloudService", "blockchain_channel": "default", "blockchain_url": "blockchain_url value", "blockchain_chaincode": "blockchain_chaincode value", "blockchain_sync": true, "blockchain_timeout": 6000, "vcn_display_name": "vcn_display_name value", "application_display_name": "application_display_name value", "gateway_display_name": "gateway_display_name value", "deployment_display_name": "deployment_display_name value", "deployment_path_prefix": "deployment_path_prefix value", "ocir_repo_name": "ocir_repo_name value", "policy_name": "policy_name value"}' -a true