ラッパーAPIパッケージ・コンポーネント

ラッパーAPIパッケージには、ラッパーAPIのアーカイブ・ファイル、デプロイメント用のTerraformスクリプト、および対応するPostmanコレクションが含まれます。

  • ラッパーAPIアーカイブ・ファイルの名前は<ChaincodeName>WrapperAPI.zipです。また、スタック・リソースにデプロイする必要があるTerraformスクリプトも含まれています。
  • Postmanコレクション・ファイルの名前は<ChaincodeName>_WrapperAPI.postman_collection.jsonです。このコレクションを使用して、すべてのラッパーAPIを起動できます。

ラッパーAPIパッケージ

ラッパーAPIパッケージには、ラッパーAPIの作成に必要なすべてのOracle Cloud Infrastructure (OCI)リソースをプロビジョニングするTerraformスクリプトが含まれています。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ファイルを更新できます。function_paths変数にterraform.tfvarsファイルを編集して、エンドポイントを更新します。function_paths変数は、キーがAPI名で、値が次の2つのキーを持つ別のJSONオブジェクトである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 userIdがパラメータ名であるすべてのPOSTリクエストのデフォルト・ユーザーID bc-user-idの値
bc-token-id すべてのPOSTリクエストのデフォルト・トークンID。tokenIdはパラメータ名です。 bc-token-idの値
endorsers 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未満の場合は、単一のエンドポイントが使用されます。50を超えるAPIがある場合、APIの数に基づいて、エンドポイントはapi-gateway-endpoint1、api-gateway-endpoint2などとして動的に生成されます。

https://xyz.apigateway.region.oci.customer-oci.com/CBDC
peer この変数は、すべてのsetter APIのピア・ヘッダーを必要とする機密チェーンコード・ラッパーAPI Postmanコレクションにのみ存在します。 組織-xyz-abc.blockchain.ocp.oraclecloud.com:20009年

ラッパーAPIパッケージをデプロイすると、スタック・リソース・デプロイメントからの出力は、ゲートウェイ・エンドポイント値を含むJSONオブジェクトになります。50を超えるAPIを生成すると、50 APIごとに1つずつ、複数のゲートウェイ・エンドポイントが生成されます。これらのエンドポイントに関連するPostmanコレクション変数を更新する必要があります。Postmanコレクションのエンドポイント関連の変数は、スタック・リソース・マネージャでのラッパーAPIパッケージ・デプロイメントの出力からの適切な値で更新する必要があります。

ラッパーAPI Postmanコレクションのすべてのsetter APIには、リクエスト・ペイロードのendorsersまたはsameOrgEndorserパラメータが含まれます。sameOrgEndorserパラメータを必要とするAPIを指定する情報は、チェーンコードの.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コレクションの使用の詳細については、次のトピックを参照してください。