包装器 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 资源。
- Virtual Cloud Network (VCN):建立用于通信的网络基础设施。
- 应用 (Oracle Functions):部署无服务器函数来处理 API 逻辑。
- API 网关:创建用于管理和路由 API 请求的网关。
- API 部署:在 API 网关上配置和部署 API。
- API 部署策略:设置必要的 IAM 策略以启用安全访问。
- OCI 注册表:提供用于管理 Docker 映像的容器注册表。
生成包装 API 后,如果要更改任何配置变量,可以在 Visual Studio Code 中更新它们,也可以提取包装 API 程序包并使用更新的端点和资源名称更新
terraform.tfvars
文件。编辑 terraform.tfvars
文件的 function_paths
变量以更新端点。function_paths
变量是一个 JSON 对象,其中 key 是 API 名称,value 是另一个具有以下两个键的 JSON 对象:
path
:定义 API 的端点type
:指定请求类型(POST 或 GET)
function_paths
变量的示例。function_paths="{\"activateAccount\":{\"path\":\"/activateAccount\",\"type\":[\"POST\"]}}"
Postman 集合
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 的对等标头。 | org-xyz-abc.blockchain.ocp.oraclecloud.com:20009 |
部署包装器 API 程序包后,堆栈资源部署的输出是一个包含网关端点值的 JSON 对象。如果生成了 50 多个 API,则会生成多个网关端点,每个端点为 50 个 API。您必须更新与这些端点相关的 Postman 集合变量。Postman 集合中与端点相关的变量必须使用堆栈资源管理器中包装器 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 集合的更多详细信息,请参见以下主题。