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.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_ocidssono obbligatorie per la generazione di un package API wrapper. Se una delle seguenti variabili, ad eccezione digateway_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.zipdell'API wrapper.Nome variabile Descrizione compartment_ocidOCID del compartimento in Oracle Cloud Infrastructure (OCI). compartment_nameNome del compartimento OCI. identity_domainIl dominio di Identity da utilizzare. blockchain_channelNome del canale Oracle Blockchain Platform in cui viene distribuito il codice concatenato. blockchain_urlURL di Oracle Blockchain Platform associato alla distribuzione del codice concatenato. blockchain_chaincodeNome del codice concatenato per il quale generare le API wrapper. blockchain_syncIl valore di sincronizzazione da includere nel payload per le chiamate API. blockchain_timeoutValore di timeout da includere nel payload per le chiamate API. vcn_display_nameNome visualizzato della rete cloud virtuale OCI. application_display_nameNome visualizzato dell'applicazione OCI. gateway_display_nameNome visualizzato del gateway API. deployment_display_nameNome visualizzato della distribuzione nel gateway API. deployment_path_prefixPrefisso del percorso di distribuzione nel gateway API, che specifica il percorso in cui vengono distribuiti gli instradamenti. La variabile deployment_path_prefixdeve iniziare con una barra (/).ocir_repo_nameNome del repository del registro OCI. La variabile ocir_repo_namedeve essere composta da tutte le lettere minuscole.policy_nameNome del criterio che consente la gestione controllata e l'accesso alle API tramite autorizzazioni definite per gruppi e compartimenti all'interno dell'organizzazione gateway_ocidsOggetto 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