Componenti package 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 dell'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 chiamare tutte le API wrapper.
Package API wrapper
Il package API wrapper contiene uno script Terraform che esegue il provisioning di tutte le risorse Oracle Cloud Infrastructure (OCI) necessarie per la creazione delle API wrapper. Sono disponibili ulteriori file di supporto Terraform e una cartella Oracle Functions per ogni API. I package API wrapper creano le risorse OCI seguenti.
- Rete cloud virtuale (VCN): stabilisce l'infrastruttura di rete per la comunicazione.
- Applications (Oracle Functions): distribuisce 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 sul gateway API.
- Criterio di distribuzione API: imposta i criteri IAM necessari per abilitare l'accesso sicuro.
- Registro OCI: fornisce un registro container per la gestione delle immagini Docker.
terraform.tfvars
con endpoint e nomi di risorsa aggiornati e il file routes.go
con endpoint aggiornati. Modificare la variabile function_paths
nel file terraform.tfvars
per aggiornare un endpoint. La variabile function_paths definisce gli endpoint con la sintassi seguente: {endpoint, methodType}
. Il testo seguente mostra un esempio di variabile function_paths
.function_paths="[{\"endpoint\":\"/activateCBDCAccount\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/addCBAdmin\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/approveBurn\",\"methodType\":[\"POST\"]}]"
Il file routes.go
si trova nella cartella <ChaincodeName>OCIFunction
. La variabile routeData
contiene metadati per tutti gli instradamenti creati nel gateway, inclusi il nome dell'instradamento, gli argomenti e l'eventuale presenza di argomenti facoltativi. Quando si aggiorna un endpoint nella variabile function_paths
nel file terraform.tfvars
, è necessario aggiornare anche la voce corrispondente nella variabile routeData
nel file routes.go
, come mostrato nell'esempio seguente.var routeData = map[string]Route{
"/activateCBDCAccount": {
Args: []string{"activateAccount", "orgId", "userId", "tokenId"},
OptionalParams: true,
},
}
Collezione Postman
Le raccolte Postman ora supportano il codice concatenato riservato e l'autenticazione OAuth 2.0. Per ulteriori informazioni, vedere Miglioramenti alle raccolte postman.
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"applicationGroups": "[\"application_groups value\"]",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
"endorsers": {{endorsers}}
}
Variabile | Descrizione | Valore predefinito |
---|---|---|
bc-admin-user |
L'utente amministrativo, che dispone del ruolo admin e può accedere 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 dell'utente amministrativo. | 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 |
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 token bc |
endorsers |
L'array di giranti 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 |
https://xyz.apigateway.region.oci.customer-oci.com/CBDC |
bc-url |
URL proxy REST dell'istanza di Oracle Blockchain Platform. | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
access-token-url |
URL del token di accesso a Oracle Identity Cloud Service (IDCS). Ad esempio: <idcs_endpoint>/oauth/v1/token |
valore access-token-url |
client-id |
ID client dell'istanza di Oracle Blockchain Platform. | ID-cliente |
client-secret |
Il segreto client dell'istanza di Oracle Blockchain Platform. | client-secret |
peer |
Questa variabile esiste solo per la raccolta riservata Chaincode wrapper API Postman, che richiede l'intestazione peer per tutte le API setter e getter. | 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 gateway. Se si generano più di 50 API, vengono generati più endpoint 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.
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. Per le API elencate in questo parametro, sameOrgEndorser
sarà impostato su true nei payload. Tutte le altre API 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.