CLIを使用したラッパーAPIの生成

ブロックチェーン・アプリケーション・ビルダーの拡張バージョンには、チェーンコード・プロジェクト内のすべてのコントローラAPIのラッパーAPIを生成するgenerateFnAPIコマンドが含まれています。

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 Gatewayは、1つのデプロイメントで作成できるルートの数を50に制限します。generateFnAPIコマンドを使用して50を超えるラッパーAPIを生成しようとすると、複数のゲートウェイを作成するかどうかを確認するプロンプトが表示されます。同じデプロイメント・パス接頭辞を持つ複数のゲートウェイを作成すると、すべてのラッパーAPIエンドポイント間で一貫したベース・パスが維持されます。複数のゲートウェイを作成しないことを選択した場合、ラッパーAPIの生成は取り消されます。次の情報の説明に従ってgateway_ocidsパラメータを使用して、既存のゲートウェイを再利用できます。

コマンドのオプション

-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>
configオプションは、ラッパーAPIパッケージに必要な構成変数を渡すために使用されます。キー/値ペアのJSONオブジェクトで、キーは構成変数名、値は構成変数値です。ラッパーAPIパッケージを生成するには、gateway_ocids以外のすべての構成変数が必須です。gateway_ocids以外の次の変数のいずれかがコマンドに渡されない場合、ラッパー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への制御された管理およびアクセスを可能にするポリシーの名前
gateway_ocids 既存のAPIゲートウェイを再利用するためのOracle Cloud識別子(OCIDs)のJSONオブジェクト。50ラッパーAPIごとに1つのゲートウェイを指定する必要があります。gateway_ocidsパラメータを指定しない場合、コマンドは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"}'

次の例は、gateway_ocidsパラメータを使用するコマンドを示しています。

ochain generateFnAPI -m '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest"}' -c '{"compartment_ocid":"ocid1.compartment.oc1..xxxx","compartment_name":"MyCompartment","identity_domain":"OracleIdentityCloudService","blockchain_channel":"default","blockchain_url":"https://blockchain-url","blockchain_chaincode":"my_chaincode","blockchain_sync":true,"blockchain_timeout":6000,"vcn_display_name":"myVCN","application_display_name":"myApp","gateway_display_name":"myGateway","deployment_display_name":"myDeployment","deployment_path_prefix":"myprefix","ocir_repo_name":"myRepo","policy_name":"myPolicy","gateway_ocids":"{\"1\":\"ocid1.apigateway.oc1.xxx\",\"2\":\"ocid1.apigateway.oc1.yyy\"}"}'
-a、--all <all>
allオプションは、チェーンコードに定義されているすべてのコントローラAPIのラッパーAPIを生成します。trueの場合、このオプションはマッピング・オプションをオーバーライドします。すべてのラッパーAPIには、API名に対応するデフォルト・エンドポイントが割り当てられます。allオプションを指定した場合でも、マッピング・オプションに空の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