Componenti pacchetto API wrapper

I package API wrapper contengono un file di archivio delle API wrapper, uno script Terraform per la distribuzione e una raccolta Postman corrispondente.

  • Il file di archivio API wrapper è denominato <ChaincodeName>WrapperAPI.zip. Contiene anche uno script Terraform che deve essere distribuito nella risorsa stack.
  • Il file di raccolta Postman è denominato <ChaincodeName>_WrapperAPI.postman_collection.json. È possibile utilizzare questa raccolta per richiamare tutte le API wrapper.

Package API del wrapper

Il package API wrapper contiene uno script Terraform che esegue il provisioning di tutte le risorse Oracle Cloud Infrastructure (OCI) necessarie per creare le API wrapper. Sono disponibili file di supporto Terraform aggiuntivi e una cartella Oracle Functions per ogni API. I package API wrapper creano le risorse OCI riportate di seguito.

  • Rete cloud virtuale (VCN): stabilisce l'infrastruttura di rete per la comunicazione.
  • Applicazioni (Oracle Functions): implementa funzioni serverless per gestire la logica API.
  • Gateway API: crea il gateway per gestire e instradare le richieste API.
  • Distribuzione API: configura e distribuisce le API nel gateway API.
  • Criterio di distribuzione API: imposta i criteri IAM necessari per abilitare l'accesso sicuro.
  • OCI Registry: fornisce un registro container per la gestione delle immagini Docker.
Dopo aver generato le interfacce API wrapper, se si desidera modificare le variabili di configurazione, è possibile aggiornarle in Visual Studio Code oppure estrarre il package API wrapper e aggiornare il file terraform.tfvars con endpoint e nomi di risorsa aggiornati. Modificare la variabile function_paths nel file terraform.tfvars per aggiornare un endpoint. La variabile function_paths è un oggetto JSON in cui la chiave è il nome dell'API e il valore è un altro oggetto JSON con le due chiavi seguenti:
  • path: definisce l'endpoint per l'API
  • type: specifica il tipo di richiesta (POST o GET).
Il testo seguente mostra un esempio di variabile function_paths.
function_paths="{\"activateAccount\":{\"path\":\"/activateAccount\",\"type\":[\"POST\"]}}"

Collezione Postman

La raccolta Postman include endpoint e payload aggiornati per tutte le API. Il codice seguente mostra un payload di esempio.
{
    "orgId": "{{bc-org-id}}",
    "userId": "user1",
    "tokenType": "fungible",
    "applicationGroups": "[\"application_groups value\"]",
    "dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
    "endorsers": {{endorsers}}
}
Nella tabella seguente vengono visualizzate le variabili di raccolta Postman.
Variabile Descrizione Valore predefinito
bc-admin-user L'utente amministratore, che dispone del ruolo di amministratore in cui ha accesso a tutte le richieste POST. Per impostazione predefinita, questo utente è il chiamante di tutte le richieste POST nel codice concatenato. valore bc-admin-user
bc-admin-user-password Password utente amministratore. valore bc-admin-user-password
bc-org-id ID organizzazione predefinito in tutte le richieste POST in cui orgId è il nome del parametro valore bc-org-id
bc-user-id L'ID utente predefinito in tutte le richieste POST in cui userId è il nome del parametro valore bc-user-id
bc-token-id ID token predefinito in tutte le richieste POST in cui tokenId è il nome del parametro valore di bc-token-id
endorsers L'array di autori approvazione elenca i pari livello specifici (ad esempio peer1, peer2) per approvare questa transazione. ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"]
api-gateway-endpoint Endpoint di ogni richiesta, che funge da percorso di base per gli endpoint API wrapper.

Se sono presenti meno di 50 API, viene utilizzato un singolo endpoint. Se sono presenti più di 50 API, gli endpoint vengono generati in modo dinamico come api-gateway-endpoint1, api-gateway-endpoint2 e così via, in base al numero di API.

https://xyz.apigateway.region.oci.customer-oci.com/CBDC
peer Questa variabile esiste solo per la raccolta Postman API wrapper codice concatenato riservata, che richiede l'intestazione peer per tutte le API setter. org-xyz-abc.blockchain.ocp.oraclecloud.com:20009

Dopo aver distribuito il package API wrapper, l'output della distribuzione delle risorse dello stack è un oggetto JSON contenente i valori dell'endpoint del gateway. Se si generano più di 50 API, vengono generati più endpoint di gateway, uno per ogni 50 API. È necessario aggiornare le variabili di raccolta Postman correlate a questi endpoint. Le variabili correlate all'endpoint nella raccolta Postman devono essere aggiornate con i valori appropriati dall'output della distribuzione del package API wrapper in Stack Resource Manager.

Tutte le API setter nella raccolta Postman API wrapper includono il parametro endorsers o sameOrgEndorser nel payload della richiesta. Le informazioni che specificano quali API richiedono il parametro sameOrgEndorser vengono definite nel parametro sameOrgEndorserOptionInWrapperAPI nel file .ochain.json nel codice concatenato. Le API elencate in questo parametro avranno sameOrgEndorser impostato su true nei relativi payload. Tutte le altre API del setter includeranno invece il parametro endorsers. L'esempio seguente mostra il parametro per il codice concatenato CBDC all'ingrosso.
"sameOrgEndorserOptionInWrapperAPI": ["addConversionRate","addTokenAdmin","addTokenAuditor","approveBurn","approveMint","burnTokens","createExchangePoolAccounts","deleteHistoricalTransactions","initializeCBDCToken","initializeExchangePoolUser","mintWithFundingExchangePool","rejectBurn","rejectMint","removeTokenAdmin","removeTokenAuditor","requestBurn","requestMint","updateCBDCToken","updateConversionRate"]
È possibile personalizzare il parametro sameOrgEndorserOptionInWrapperAPI nel file .ochain.json in base alle esigenze. Quando si generano le API wrapper, le API specificate includeranno il parametro sameOrgEndorser come true nei relativi payload.