Genera API wrapper utilizzando l'interfaccia CLI

La versione migliorata di Blockchain App Builder include il comando generateFnAPI, che genera le 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 riportato di seguito mostra come generare le API wrapper per un progetto con 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 esistenti 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.

Opzioni di comando

-m, --mapping <mapping>
L'opzione di mapping definisce la configurazione delle API del controller, specificando i nomi degli endpoint e le API del controller che richiedono la generazione dell'API del 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 seguente mostra un mapping per il codice concatenato che utilizza lo standard esteso di Token Taxonomy Framework.

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 necessarie per il package API wrapper. Si tratta di un oggetto JSON con 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 sono obbligatorie per la generazione di un pacchetto API wrapper. Se una qualsiasi delle seguenti variabili 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 Il valore di timeout da includere nel payload per le chiamate API.
vcn_display_name Nome visualizzato della rete cloud virtuale OCI.
application_display_name Il nome visualizzato dell'applicazione OCI.
gateway_display_name Il nome visualizzato del gateway API.
deployment_display_name Il 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 di OCI Registry. La variabile ocir_repo_name deve contenere tutte le lettere minuscole.
policy_name Nome del criterio che abilita la gestione controllata e l'accesso alle API tramite autorizzazioni definite per gruppi e compartimenti all'interno dell'organizzazione

L'esempio seguente mostra un mapping per il codice concatenato che utilizza lo standard esteso di 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"}'
-a, --all <all>
L'opzione All genera un'API wrapper per tutte le API controller definite nel codice concatenato. Se true, questa opzione consente di eseguire l'override dell'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 seguente mostra un mapping per il codice concatenato che utilizza lo standard esteso di Token Taxonomy Framework.

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