Generare una raccolta Postman utilizzando Visual Studio Code
È possibile creare una raccolta Postman che includa payload di esempio per tutte le API del controller di codice concatenato.
Postman è uno strumento che è possibile utilizzare per utilizzare e testare le API REST. Il comando generate crea una raccolta Postman basata sul codice concatenato generato automaticamente da un file di specifica dichiarativa. L'insieme Postman contiene i payload per tutti i metodi specificati nel file controller del codice concatenato. È possibile modificare i valori delle variabili nel file di raccolta Postman per effettuare chiamate API REST.
La raccolta Postman generata include valori predefiniti per tutte le API nel controller. Per ulteriori informazioni su Postman, vedere https://www.postman.com/. Dopo aver generato una raccolta Postman, è possibile importarla direttamente e utilizzarla modificando i valori predefiniti nel payload e nelle variabili.
Per generare una raccolta Postman per un progetto con codice concatenato in Visual Studio Code, procedere come segue.
- Selezionare il progetto codice concatenato nel riquadro Codici concatenati.
- Fare clic con il pulsante destro del mouse sul nome del codice concatenato, quindi selezionare Genera raccolta Postman.
- Selezionare una posizione in cui salvare la raccolta Postman, quindi fare clic su Seleziona cartella di output.
Se la raccolta Postman specificata esiste già, viene richiesto se sovrascriverla.
Struttura raccolta postman
- Le richieste di richiamo includono tutte le operazioni di scrittura, che utilizzano l'endpoint
/transactions
- Le richieste di query includono tutte le operazioni get, che utilizzano l'endpoint
/chaincode-queries
Per distinguere tra metodi getter e non-getter nelle API del controller, un decoratore viene utilizzato nei codici concatenati TypeScript e un commento viene utilizzato nei codici concatenati Go. Se si definisce un metodo getter nel controller, è necessario utilizzare il decoratore GetMethod per TypeScript o il commento GetMethod per Go, come mostrato nella tabella seguente.
TypeScript | Vai |
---|---|
Ogni metodo getter ha un decoratore GetMethod :
|
Ogni metodo getter ha un blocco di commento GetMethod :
|
Le raccolte Postman generate includono variabili con valori predefiniti, come mostrato nella tabella seguente.
Nome variabile | Descrizione | Valore predefinito | Contesto |
---|---|---|---|
bc-url |
URL proxy REST dell'istanza di Oracle Blockchain Platform in cui viene distribuito il codice concatenato | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
tutti i codici concatenati |
bc-channel |
Il canale in cui viene distribuito il codice concatenato | default |
tutti i codici concatenati |
bc-admin-user |
Il nome dell'amministratore (un utente con il ruolo admin che può accedere a tutte le richieste POST). Per impostazione predefinita, questo utente è il chiamante di tutte le richieste POST nel codice concatenato
|
bc-admin-user value |
tutti i codici concatenati |
bc-admin-password |
La password per l'utente amministratore | bc-admin-password value |
tutti i codici concatenati |
bc-timeout |
Valore di timeout nel corpo di ogni richiesta POST per indicare l'intervallo di timeout | 6000 |
tutti i codici concatenati |
bc-sync |
Valore di sincronizzazione nel corpo di ogni richiesta POST per indicare se la richiesta è sincrona o asincrona | true |
tutti i codici concatenati |
bc-chaincode-name |
Il nome del codice concatenato, utilizzato in ogni richiesta POST | chaincode name |
tutti i codici concatenati |
bc-org-id |
Parametro orgId predefinito per tutte le richieste POST
|
bc-org-id value |
solo codici concatenati del token |
bc-user-id |
Parametro userId predefinito per tutte le richieste POST
|
bc-user-id value |
solo codici concatenati del token |
bc-token-id |
Parametro tokenId predefinito per tutte le richieste POST
|
bc-token-id value |
solo codici concatenati del token |
In ogni richiesta generata vengono generati tutti i parametri con valori predefiniti. Le funzioni con parametri di struttura/classe avranno un oggetto segnaposto nel corpo della richiesta, come mostrato negli esempi seguenti.
- API con un parametro struct/class
-
{ "chaincode": "{{bc-chaincode-name}}", "args": [ "CreateArtCollectionToken", "{\"TokenId\":\"{{bc-token-id}}\",\"TokenDesc\":\"TokenDesc value\",\"TokenUri\":\"TokenUri value\",\"TokenMetadata\":{\"Painting_name\":\"Painting_name value\",\"Description\":\"Description value\",\"Image\":\"Image value\",\"Painter_name\":\"Painter_name value\"},\"Price\":999,\"On_sale_flag\":true}", "quantity value" ], "timeout": {{bc-timeout}}, "sync": {{bc-sync}} }
- API senza un parametro struct/class
-
{ "chaincode": "{{bc-chaincode-name}}", "args": [ "CreateAccount", "{{bc-org-id}}", "example_minter", "true", "true" ], "timeout": {{bc-timeout}}, "sync": {{bc-sync}} }
Il valore predefinito per la maggior parte dei parametri API è parameter_name value
, con alcune eccezioni. Gli esempi riportati di seguito mostrano alcune eccezioni.
- Il parametro dei filtri in
GetAccountTransactionHistoryWithFilters
:"{\"PageSize\":20,\"Bookmark\":\"\",\"StartTime\":\"2022-01-16T15:16:36+00:00\",\"EndTime\":\"2022-01-17T15:16:36+00:00\"}"
- Il parametro dei filtri in
GetSubTransactionsByIdWithFilters
:"{\"PageSize\":20,\"Bookmark\":\"\}"
Una struttura o una classe ha valori predefiniti diversi, come illustrato nella tabella riportata di seguito.
Tipo di dati | Valore predefinito |
---|---|
boolean/bool |
true |
int/number |
999 |
date |
2022-01-16T15:16:36+00:00 |
other |
parameter_name value |
Progetti token ERC-1155
Lo standard ERC-1155 include metodi comuni per token sia fungibili che non fungibili. La raccolta Postman generata per un progetto ERC-1155 che utilizza token sia fungibili che non fungibili include due diverse richieste POST, una per ogni tipo di token, per questi metodi comuni. Se un progetto ERC-1155 utilizza solo token fungibili o non fungibili ma non entrambi i tipi, la raccolta Postman generata include solo una richiesta POST per questi metodi comuni. La tabella seguente illustra l'API generata per il metodoAddRole
.
Elemento richiesta | Token fungibili | Token non fungibili |
---|---|---|
Nome richiesta | AddRole -For Fungible |
AddRole -For NonFungible |
Corpo richiesta |
|
|