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