Wrapper-APIs mit der CLI generieren

Die erweiterte Version von Blockchain App Builder enthält den Befehl generateFnAPI, mit dem Wrapper-APIs für alle Controller-APIs in einem Chaincode-Projekt generiert werden.

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.
Das folgende Beispiel zeigt, wie Wrapper-APIs für ein lokales Chaincode-Projekt generiert werden.
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>

Wenn Sie den Befehl generateFnAPI ausführen, werden Sie aufgefordert, vorherige Wrapper-API-Packages zu überschreiben, die im Auswahlverzeichnis vorhanden sind.

API Gateway begrenzt die Anzahl der Routen, die in einem einzelnen Deployment erstellt werden können, auf 50. Wenn Sie versuchen, mit dem Befehl generateFnAPI mehr als 50 Wrapper-APIs zu generieren, werden Sie aufgefordert, mehrere Gateways zu erstellen. Wenn Sie mehrere Gateways mit demselben Deployment-Pfadpräfix erstellen, wird ein konsistenter Basispfad über alle Wrapper-API-Endpunkte hinweg beibehalten. Wenn Sie nicht mehrere Gateways erstellen, wird die Wrapper-API-Generierung abgebrochen. Sie können den Parameter gateway_ocids wie in den folgenden Informationen beschrieben verwenden, um vorhandene Gateways wiederzuverwenden.

Befehlsoptionen

-m, --mapping <mapping>
Die Zuordnungsoption definiert die Konfiguration von Controller-APIs unter Angabe der Endpunktnamen und der Controller-APIs, die eine Wrapper-API-Generierung erfordern. Die Zuordnung ist ein JSON-Objekt aus Schlüssel/Wert-Paaren, wobei der Schlüssel der Name der Controller-API und der Wert der benutzerdefinierte Endpunkt ist, der mit dieser Controller-API verknüpft werden soll.

Das folgende Beispiel zeigt ein Mapping für Chaincode, das den erweiterten Token Taxonomy Framework-Standard verwendet.

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>
Mit der Konfigurationsoption werden die Konfigurationsvariablen übergeben, die für das Wrapper-API-Package erforderlich sind. Es handelt sich um ein JSON-Objekt aus Schlüssel/Wert-Paaren, wobei der Schlüssel der Name der Konfigurationsvariablen und der Wert der Wert der Konfigurationsvariablen ist. Alle Konfigurationsvariablen mit Ausnahme von gateway_ocids sind erforderlich, um ein Wrapper-API-Package zu generieren. Wenn eine der folgenden Variablen außer gateway_ocids nicht an den Befehl übergeben wird, verläuft die Wrapper-API-Generierung nicht erfolgreich. Sie können diese Werte bearbeiten, nachdem Sie die Wrapper-API erstellt haben, indem Sie die Wrapper-API-Datei .zip extrahieren.
Variablenname Beschreibung
compartment_ocid Die OCID des Compartments in Oracle Cloud Infrastructure (OCI).
compartment_name Der Name des OCI Compartments.
identity_domain Die zu verwendende Identitätsdomain.
blockchain_channel Der Name des Oracle Blockchain Platform-Kanals, in dem der Chaincode bereitgestellt wird.
blockchain_url Die Oracle Blockchain Platform-URL, die mit dem Chaincode-Deployment verknüpft ist.
blockchain_chaincode Der Name des Chaincodes, für den Wrapper-APIs generiert werden sollen.
blockchain_sync Der Synchronisierungswert, der in die Payload für API-Aufrufe aufgenommen werden soll.
blockchain_timeout Der Timeoutwert, der in die Payload für API-Aufrufe aufgenommen werden soll.
vcn_display_name Der Anzeigename des virtuellen OCI-Cloud-Netzwerks.
application_display_name Der Anzeigename der OCI-Anwendung.
gateway_display_name Der Anzeigename des API-Gateways.
deployment_display_name Der Anzeigename des Deployments im API-Gateway.
deployment_path_prefix Das Deployment-Pfadpräfix in API Gateway, das den Pfad angibt, in dem Routen bereitgestellt werden. Die Variable deployment_path_prefix muss mit einem Schrägstrich (/) beginnen.
ocir_repo_name Der Name des OCI Registry-Repositorys. Die Variable ocir_repo_name muss aus Kleinbuchstaben bestehen.
policy_name Der Name der Policy, die eine kontrollierte Verwaltung und Zugriff auf APIs über definierte Berechtigungen für Gruppen und Compartments in der Organisation ermöglicht
gateway_ocids Ein JSON-Objekt von Oracle Cloud-IDs (OCIDs) für die Wiederverwendung vorhandener API-Gateways. Sie müssen ein Gateway für jeweils 50 Wrapper-APIs angeben. Wenn Sie keinen Parameter gateway_ocids angeben, erstellt der Befehl API-Gateways.

Das folgende Beispiel zeigt einen Befehl für Chaincode, der den erweiterten Token Taxonomy Framework-Standard verwendet.

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"}'

Das folgende Beispiel zeigt einen Befehl, der den Parameter gateway_ocids verwendet.

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>
Die Option "Alle" generiert eine Wrapper-API für alle Controller-APIs, die im Chaincode definiert sind. Wenn true, überschreibt diese Option die Zuordnungsoption. Jeder Wrapper-API wird ein Standardendpunkt zugewiesen, der dem API-Namen entspricht. Wenn Sie die Option "Alle" angeben, müssen Sie weiterhin ein leeres JSON-Objekt ({}) für die Zuordnungsoption angeben.

Das folgende Beispiel zeigt ein Mapping für Chaincode, das den erweiterten Token Taxonomy Framework-Standard verwendet.

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