Genera API wrapper mediante l'interfaccia CLI

La versione avanzata di Blockchain App Builder include il comando generateFnAPI, che genera API wrapper per tutte le API controller in un progetto con codice concatenato.

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.
L'esempio seguente mostra come generare le API wrapper per un progetto di codice concatenato locale.
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>

Quando si esegue il comando generateFnAPI, viene richiesto se sovrascrivere i pacchetti API wrapper precedenti presenti nella posizione di selezione.

Il gateway API limita a 50 il numero di instradamenti che è possibile creare in una singola distribuzione. Se si tenta di utilizzare il comando generateFnAPI per generare più di 50 API wrapper, viene richiesto se creare più gateway. La creazione di più gateway con lo stesso prefisso del percorso di distribuzione mantiene un percorso di base coerente in tutti gli endpoint API wrapper. Se si sceglie di non creare più gateway, la generazione dell'API wrapper viene annullata. È possibile utilizzare il parametro gateway_ocids come descritto nelle informazioni riportate di seguito per riutilizzare i gateway esistenti.

Opzioni di comando

-m, --mapping <mapping>
L'opzione di mapping definisce la configurazione delle API controller, specificando i nomi degli endpoint e le API controller che richiedono la generazione di API wrapper. La mappa è un oggetto JSON di coppie chiave/valore, in cui la chiave è il nome dell'API del controller e il valore è l'endpoint personalizzato da associare a tale API del controller.

L'esempio riportato di seguito mostra un mapping per il codice concatenato che utilizza lo standard Token Taxonomy Framework esteso.

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>
L'opzione di configurazione viene utilizzata per passare le variabili di configurazione richieste per il package API wrapper. Si tratta di un oggetto JSON di coppie chiave/valore, in cui la chiave è il nome della variabile di configurazione e il valore è il valore della variabile di configurazione. Tutte le variabili di configurazione ad eccezione di gateway_ocids sono obbligatorie per la generazione di un package API wrapper. Se una delle seguenti variabili, ad eccezione di gateway_ocids, non viene passata al comando, la generazione dell'API wrapper non riesce. È possibile modificare questi valori dopo aver creato l'API wrapper estraendo il file .zip dell'API wrapper.
Nome variabile Descrizione
compartment_ocid OCID del compartimento in Oracle Cloud Infrastructure (OCI).
compartment_name Nome del compartimento OCI.
identity_domain Il dominio di Identity da utilizzare.
blockchain_channel Nome del canale Oracle Blockchain Platform in cui viene distribuito il codice concatenato.
blockchain_url URL di Oracle Blockchain Platform associato alla distribuzione del codice concatenato.
blockchain_chaincode Nome del codice concatenato per il quale generare le API wrapper.
blockchain_sync Il valore di sincronizzazione da includere nel payload per le chiamate API.
blockchain_timeout Valore di timeout da includere nel payload per le chiamate API.
vcn_display_name Nome visualizzato della rete cloud virtuale OCI.
application_display_name Nome visualizzato dell'applicazione OCI.
gateway_display_name Nome visualizzato del gateway API.
deployment_display_name Nome visualizzato della distribuzione nel gateway API.
deployment_path_prefix Prefisso del percorso di distribuzione nel gateway API, che specifica il percorso in cui vengono distribuiti gli instradamenti. La variabile deployment_path_prefix deve iniziare con una barra (/).
ocir_repo_name Nome del repository del registro OCI. La variabile ocir_repo_name deve essere composta da tutte le lettere minuscole.
policy_name Nome del criterio che consente la gestione controllata e l'accesso alle API tramite autorizzazioni definite per gruppi e compartimenti all'interno dell'organizzazione
gateway_ocids Oggetto JSON degli identificativi Oracle Cloud (OCID) per il riutilizzo dei gateway API esistenti. È necessario specificare un gateway ogni 50 API wrapper. Se non si specifica un parametro gateway_ocids, il comando crea i gateway API.

L'esempio riportato di seguito mostra un comando per il codice concatenato che utilizza lo standard Extended Token Taxonomy Framework.

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

L'esempio seguente mostra un comando che utilizza il parametro gateway_ocids.

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, --tutti <tutti>
L'opzione all genera l'API wrapper per tutte le API controller definite nel codice concatenato. Se si utilizza true, questa opzione sostituisce l'opzione di mapping. A ogni API wrapper viene assegnato un endpoint predefinito che corrisponde al nome dell'API. Se si specifica l'opzione all, è comunque necessario fornire un oggetto JSON vuoto ({}) per l'opzione di mapping.

L'esempio riportato di seguito mostra un mapping per il codice concatenato che utilizza lo standard Token Taxonomy Framework esteso.

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