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の生成は取り消されます。

コマンドのオプション

-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パッケージを生成するには、すべての構成変数が必須です。次のいずれかの変数がコマンドに渡されない場合、ラッパー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>
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