Miglioramenti alle raccolte postman
Oracle Blockchain Platform Digital Assets Edition aggiunge il supporto per i parametri di approvazione, i codici concatenati riservati e OAuth 2.0 alle raccolte Postman generate da Blockchain App Builder.
Blockchain App Builder ti consente di creare una raccolta Postman che include payload di esempio per tutte le API del controller di codice concatenato. Per ulteriori informazioni, vedere Generare una raccolta Postman utilizzando l'interfaccia CLI e Generare una raccolta Postman utilizzando Visual Studio Code.
Oracle Blockchain Platform Digital Assets Edition estende tale funzionalità includendo un parametro aggiuntivo nel payload della richiesta per tutti i metodi setter. Per il codice concatenato generico (anziché in modalità riservata), il parametro è endorsers
o sameOrgEndorser
. Il parametro sameOrgEndorser
, se impostato su true
, indica che le dichiarazioni a sostegno delle transazioni devono provenire dalla stessa organizzazione del richiedente. Il parametro endorsers
specifica un elenco di peer che devono approvare la transazione.
Il parametro sameOrgEndorserOptionInWrapperAPI
nel file .ochain.json
nel codice concatenato specifica quali API richiedono un valore sameOrgEndorser
. Le API associate al parametro sameOrgEndorserOptionInWrapperAPI
hanno il parametro sameOrgEndorser
impostato su true
nei relativi payload. Tutte le altre API includono il parametro endorsers
anziché il parametro sameOrgEndorser
.
sameOrgEndorserOptionInWrapperAPI
nel file .ochain.json
nel package di codici concatenati CBDC all'ingrosso."sameOrgEndorserOptionInWrapperAPI": ["addConversionRate","addTokenAdmin","addTokenAuditor","approveBurn","approveMint","burnTokens","createExchangePoolAccounts","deleteHistoricalTransactions","initializeCBDCToken","initializeExchangePoolUser","issueTokens","mintWithFundingExchangePool","rejectBurn","rejectMint","removeTokenAdmin","removeTokenAuditor","requestBurn","requestMint","updateCBDCToken","updateConversionRate"]
È possibile personalizzare questo parametro in base alle esigenze. Quando viene generata l'API wrapper, il parametro sameOrgEndorser
delle API specificate verrà impostato su true
nei relativi payload.
I payload di esempio riportati di seguito mostrano questi parametri di approvazione.
-
addOrgAdmin
{ "chaincode": "{{bc-chaincode-name}}", "args": [ "addOrgAdmin", "{{bc-org-id}}", "{{bc-user-id}}" ], "timeout": {{bc-timeout}}, "sync": {{bc-sync}}, "endorsers": {{endorsers}} }
-
addTokenAdmin
{ "chaincode": "{{bc-chaincode-name}}", "args": [ "addTokenAdmin", "{{bc-org-id}}", "{{bc-user-id}}" ], "timeout": {{bc-timeout}}, "sync": {{bc-sync}}, "sameOrgEndorser": true }
Supporto Chaincode riservato
I codici concatenati generati in modalità riservata gestiscono i parametri in modo diverso dalla modalità generica. Nei codici concatenati riservati, gli argomenti API vengono passati utilizzando una mappa transitoria nel payload della richiesta. Ciò garantisce che gli argomenti rimangano riservati e non vengano esposti nei log. Per ulteriori informazioni sul codice concatenato riservato, vedere Panoramica sui pagamenti riservati.
Tutti i metodi getter includono un parametro peer
(non presente nel codice concatenato in modalità generica).
endorsers
, che specifica un elenco di peer che devono approvare la transazione. Il parametro sameOrgEndorserOptionInWrapperAPI
nel file .ochain.json
è impostato su un array vuoto:"sameOrgEndorserOptionInWrapperAPI": []
I metodi Setter richiedono un'intestazione Confidential-Transaction
, che indica che il fattore di associazione richiesto per le transazioni riservate viene recuperato dall'istanza di Oracle Blockchain Platform. Questa intestazione è obbligatoria nelle richieste postman per le transazioni riservate.
Per mantenere la sicurezza del codice concatenato in modalità riservata, passare gli argomenti in un oggetto transientMap
. È possibile passare gli argomenti direttamente nel parametro args
nella mappa transitoria, come mostrato nell'esempio seguente per il metodo activateAccount
:
"transientMap": { "args": "[\"account_id value\"]" }
Solo per la raccolta Postman API wrapper (non per la raccolta Postman generica), è inoltre possibile utilizzare il flag transientMapArgsFlag
, che se impostato su true
passa automaticamente tutti gli argomenti alla mappa transitoria, come mostrato nell'esempio seguente per il metodo activateAccount
:
{
"accountId": "account_id value",
"transientMapArgsFlag": true
}
Nell'esempio seguente le richieste Postman mostrano questi parametri e queste intestazioni.
-
createAccount
(metodo set) curl --location 'https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/channels/default/transactions' \ --header 'Content-Type: application/json' \ --header 'Confidential-Transaction: true' \ --header 'Authorization: Bearer {{access_token}}' \ --data '{ "chaincode": "{{bc-chaincode-name}}", "args": [ "activateAccount" ], "timeout": 6000, "sync": true, "endorsers": ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"], "transientMap": { "args": "[\"account_id value\"]" } }'
-
getAllActiveAccounts
(metodo getter) curl --location 'https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy/api/v2/channels/default/chaincode-queries' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer {{access_token}}' \ --data '{ "chaincode": "{{bc-chaincode-name}}", "args": [ "getAllActiveAccounts" ], "timeout": 6000, "sync": true, "peer": "org-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "transientMap": { "args": "[\"bc-org-id value\",\"bc-token-id value\"]" } }'
Supporto OAuth 2.0
Per impostazione predefinita, le raccolte Postman generate da Blockchain App Builder sono configurate per l'autorizzazione OAuth 2.0. Per abilitare OAuth 2.0, è necessario fornire i seguenti valori nelle variabili globali della raccolta Postman.
-
client-id
- ID client dell'istanza di Oracle Blockchain Platform.
-
client-secret
- Il segreto client dell'istanza di Oracle Blockchain Platform.
-
access-token-url
- L'URL del token di accesso contiene l'URL del dominio dell'istanza di Oracle Blockchain Platform nel seguente formato:
https://<domain-URL>/oauth2/v1/token
Completare i passi riportati di seguito per recuperare l'ID client, il segreto client e l'URL del dominio per un'istanza di Oracle Blockchain Platform.
- Accedi al tuo account Oracle Cloud Infrastructure (OCI). Selezionare il compartimento che contiene l'istanza di Oracle Blockchain Platform.
- Nella console fare clic sul menu Navigazione, quindi fare clic su Identità e sicurezza.
- In Identità selezionare Domini.
- Nella pagina Domini fare clic su Oracle Identity Cloud Service.
- Nel menu di navigazione di Oracle Identity Cloud Service selezionare Oracle Cloud Services. Individuare l'istanza di Oracle Blockchain Platform e aprire la pagina dei dettagli dell'istanza.
- La pagina predefinita visualizzata è la pagina OAuth Configuration. I campi ID client e Segreto client si trovano nella sezione Informazioni generali.
- Tornare alla pagina Domini, quindi fare clic sul dominio utilizzato dall'istanza di Oracle Blockchain Platform.
- L'URL del dominio viene visualizzato nei dettagli del dominio.
Queste variabili globali vengono utilizzate in uno script pre-richiesta per generare un segnaposto access_token
. Lo script genera un token per l'utente bc-admin
in modo che ogni richiesta venga eseguita con l'autorizzazione bc-admin
.
La prima richiesta genera un token bc-admin
utilizzando le credenziali specificate. Il token e il valore di scadenza sono memorizzati nelle variabili di raccolta Postman. I token mancanti o scaduti vengono rigenerati automaticamente. Se l'ID client o il segreto client cambia, lo script rileva automaticamente la modifica, invalida il token precedente e genera un token con credenziali aggiornate. Se si modifica manualmente il valore access_token
, le richieste non riescono. Se si cancella il valore access_token
, lo script genera automaticamente un altro token bc-admin
.
È possibile utilizzare la richiesta Genera token di accesso per utente nella raccolta Postman per generare e utilizzare un token diverso dal token bc-admin
predefinito. Per generare un token di accesso personalizzato, effettuare le operazioni riportate di seguito.
- Aprire la richiesta Genera token di accesso per utente. Per impostazione predefinita, i valori
username
epassword
sono impostati subc-admin
. - Aggiornare i valori
username
epassword
nelle variabili di raccolta. - Fare clic su Genera nuovo token di accesso. Viene visualizzata la finestra Gestisci token di accesso.
- Aggiornare il nome predefinito, rivedere gli altri dettagli, quindi fare clic su Salva. Il token è ora disponibile per l'uso e viene visualizzato nella sezione Token disponibili della pagina Autorizzazione.
Le raccolte Postman generate includono le variabili richieste per il supporto di OAuth 2.0, come mostrato nella tabella seguente.
Variabile | Descrizione | Valore predefinito |
---|---|---|
client-id |
ID client dell'istanza di Oracle Blockchain Platform. | valore client-id
|
client-secret |
Segreto client dell'istanza di Oracle Blockchain Platform. | valore client-secret
|
access-token-url |
Endpoint del token OAuth 2.0 del dominio dell'istanza di Oracle Blockchain Platform. | valore access-token-url
|
access_token |
Token di accesso OAuth 2.0 generato per l'utente bc-admin o personalizzato.
|
Non disponibile inizialmente; gestito da script |
access_token_expiry |
Tempo di scadenza del token di accesso generato. | Non disponibile inizialmente; gestito da script |
admin_credentials_hash |
Valore hash delle credenziali utilizzate per la convalida e la rigenerazione del token. | Non disponibile inizialmente; gestito da script |