ラッパー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イメージを管理するためのコンテナ・レジストリを提供します。
routes.go
ファイルでterraform.tfvars
ファイルを更新できます。terraform.tfvars
ファイルのfunction_paths
変数を編集して、エンドポイントを更新します。function_paths変数は、{endpoint, methodType}
という構文でエンドポイントを定義します。次のテキストは、function_paths
変数の例を示しています。function_paths="[{\"endpoint\":\"/activateCBDCAccount\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/addCBAdmin\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/approveBurn\",\"methodType\":[\"POST\"]}]"
routes.go
ファイルは、<ChaincodeName>OCIFunction
フォルダにあります。routeData
変数には、ルート名、引数、オプションの引数があるかどうかなど、ゲートウェイで作成されたすべてのルートのメタデータが含まれます。terraform.tfvars
ファイルのfunction_paths
変数のエンドポイントを更新する場合は、次の例に示すように、routes.go
ファイルのrouteData
変数の対応するエントリも更新する必要があります。var routeData = map[string]Route{
"/activateCBDCAccount": {
Args: []string{"activateAccount", "orgId", "userId", "tokenId"},
OptionalParams: true,
},
}
ポストマンコレクション
Postmanコレクションで、機密チェーンコードおよびOAuth 2.0認証がサポートされるようになりました。詳細は、Postmanコレクションの拡張を参照してください。
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"applicationGroups": "[\"application_groups value\"]",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
"endorsers": {{endorsers}}
}
可変 | 説明 | デフォルト値 |
---|---|---|
bc-admin-user |
admin ロールを持ち、すべての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未満の場合は、単一のエンドポイントが使用されます。50を超えるAPIがある場合、エンドポイントはAPIの数に基づいて |
https://xyz.apigateway.region.oci.customer-oci.com/CBDC |
bc-url |
Oracle Blockchain PlatformインスタンスのRESTプロキシURL。 | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
access-token-url |
Oracle Identity Cloud Service (IDCS)アクセス・トークンURL。たとえば: <idcs_endpoint>/oauth/v1/token |
access-token-url値 |
client-id |
Oracle Blockchain PlatformインスタンスのクライアントID。 | クライアントID |
client-secret |
Oracle Blockchain Platformインスタンスのクライアント・シークレット。 | クライアント・シークレット |
peer |
この変数は、すべてのsetterおよびgetter APIのピア・ヘッダーを必要とする機密チェーンコード・ラッパーAPI Postmanコレクションにのみ存在します。 | org-xyz-abc.blockchain.ocp.oraclecloud.com:20009 |
ラッパーAPIパッケージをデプロイすると、スタック・リソース・デプロイメントからの出力は、ゲートウェイ・エンドポイント値を含むJSONオブジェクトになります。50を超えるAPIを生成すると、50 APIごとに1つずつ、複数のゲートウェイ・エンドポイントが生成されます。これらのエンドポイントに関連するPostmanコレクション変数を更新する必要があります。Postmanコレクション内のエンドポイント関連変数は、スタック・リソース・マネージャ内のラッパーAPIパッケージ・デプロイメントの出力からの適切な値で更新する必要があります。
endorsers
またはsameOrgEndorser
パラメータが含まれます。sameOrgEndorser
パラメータを必要とするAPIを指定する情報は、チェーンコードの.ochain.json
ファイルのsameOrgEndorserOptionInWrapperAPI
パラメータで定義されます。このパラメータにリストされているAPIのペイロードでは、sameOrgEndorser
がtrueに設定されます。他のすべてのセッター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
として含めます。