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_ocids
sono 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.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