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.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_ocidssind erforderlich, um ein Wrapper-API-Package zu generieren. Wenn eine der folgenden Variablen außergateway_ocidsnicht 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.zipextrahieren.Variablenname Beschreibung compartment_ocidDie OCID des Compartments in Oracle Cloud Infrastructure (OCI). compartment_nameDer Name des OCI Compartments. identity_domainDie zu verwendende Identitätsdomain. blockchain_channelDer Name des Oracle Blockchain Platform-Kanals, in dem der Chaincode bereitgestellt wird. blockchain_urlDie Oracle Blockchain Platform-URL, die mit dem Chaincode-Deployment verknüpft ist. blockchain_chaincodeDer Name des Chaincodes, für den Wrapper-APIs generiert werden sollen. blockchain_syncDer Synchronisierungswert, der in die Payload für API-Aufrufe aufgenommen werden soll. blockchain_timeoutDer Timeoutwert, der in die Payload für API-Aufrufe aufgenommen werden soll. vcn_display_nameDer Anzeigename des virtuellen OCI-Cloud-Netzwerks. application_display_nameDer Anzeigename der OCI-Anwendung. gateway_display_nameDer Anzeigename des API-Gateways. deployment_display_nameDer Anzeigename des Deployments im API-Gateway. deployment_path_prefixDas Deployment-Pfadpräfix in API Gateway, das den Pfad angibt, in dem Routen bereitgestellt werden. Die Variable deployment_path_prefixmuss mit einem Schrägstrich (/) beginnen.ocir_repo_nameDer Name des OCI Registry-Repositorys. Die Variable ocir_repo_namemuss aus Kleinbuchstaben bestehen.policy_nameDer 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_ocidsEin 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_ocidsangeben, 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_ocidsverwendet.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