Wrapper-APIs mit der CLI generieren
Die erweiterte Version von Blockchain App Builder enthält den Befehl generateFnAPI
, der Wrapper-APIs für alle Controller-APIs in einem Chaincode-Projekt generiert.
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 Auswahlspeicherort 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 möchten, wird die Generierung der Wrapper-API abgebrochen.
Befehlsoptionen
- -m, --mapping <mapping>
- Die Zuordnungsoption definiert die Konfiguration von Controller-APIs, wobei die Endpunktnamen angegeben werden und welche Controller-APIs 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 ist 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, der 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 Konfigurationsvariablenwert ist. Alle Konfigurationsvariablen sind zum Generieren eines Wrapper-API-Packages erforderlich. Wenn eine der folgenden Variablen nicht an den Befehl übergeben wird, verläuft die Generierung der Wrapper-API nicht erfolgreich. Sie können diese Werte nach dem Erstellen der Wrapper-API bearbeiten, indem Sie die Datei
.zip
der Wrapper-API 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 in 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 alle Kleinbuchstaben enthalten.policy_name
Der Name der Policy, die über definierte Berechtigungen für Gruppen und Compartments innerhalb der Organisation eine kontrollierte Verwaltung und den Zugriff auf APIs ermöglicht Das folgende Beispiel zeigt ein Mapping 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"}'
- -a, --all <all>
- Die Option "all" generiert eine Wrapper-API für alle Controller-APIs, die im Chaincode definiert sind. Bei
true
setzt diese Option die Zuordnungsoption außer Kraft. 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, der 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