Postman-Sammlung mit Visual Studio-Code generieren
Sie können eine Postman-Sammlung erstellen, die Beispiel-Payloads für alle Chaincode-Controller-APIs enthält.
Postman ist ein Tool, mit dem Sie REST-APIs verwenden und testen können. Der Generierungsbefehl erstellt eine Postman-Collection, die auf dem Chaincode basiert, der automatisch aus einer deklarativen Spezifikationsdatei generiert wurde. Die Postman-Collection enthält die Payloads für alle Methoden, die in der Chaincode-Controllerdatei angegeben sind. Sie können die Variablenwerte in der Postman-Collection-Datei ändern, um REST-API-Aufrufe vorzunehmen.
Die generierte Postman-Collection enthält Standardwerte für alle APIs im Controller. Weitere Informationen zu Postman finden Sie unter https://www.postman.com/. Nachdem Sie eine Postman-Collection generiert haben, können Sie sie direkt importieren und verwenden, indem Sie die Standardwerte in der Payload und den Variablen ändern.
Die Oracle Blockchain Platform Digital Assets Edition umfasst Unterstützung für Bestätigungsparameter in generierten Postman-Sammlungen. Weitere Informationen finden Sie unter Verbesserungen an Postman Collections.
Gehen Sie folgendermaßen vor, um eine Postman-Sammlung für ein Chaincode-Projekt in Visual Studio Code zu generieren.
- Wählen Sie das Chaincode-Projekt im Bereich Chaincodes aus.
- Klicken Sie mit der rechten Maustaste auf den Chaincode-Namen, und wählen Sie Postman-Collection generieren aus.
- Wählen Sie einen Speicherort aus, in dem die Postman-Sammlung gespeichert werden soll, und klicken Sie auf Ausgabeordner auswählen.
Wenn die angegebene Postman-Sammlung bereits vorhanden ist, werden Sie aufgefordert, sie zu überschreiben.
Postman-Sammlungsstruktur
- Aufrufanforderungen umfassen alle Schreibvorgänge, die den Endpunkt
/transactionsverwenden - Abfrageanforderungen umfassen alle get-Vorgänge, die den Endpunkt verwenden
/chaincode-queries
Um zwischen Getter- und Nicht-getter-Methoden in den Controller-APIs zu unterscheiden, wird ein Decorator in TypeScript-Kettencodes und ein Kommentar in Go-Kettencodes verwendet. Wenn Sie eine Getter-Methode im Controller definieren, müssen Sie den Decorator GetMethod für TypeScript oder den Kommentar GetMethod für Go verwenden, wie in der folgenden Tabelle dargestellt.
| TypeScript | Los |
|---|---|
Jede Getter-Methode hat einen GetMethod-Dekorator: |
Jede Getter-Methode hat einen GetMethod-Kommentarblock: |
Generierte Postman-Collections enthalten Variablen mit Standardwerten, wie in der folgenden Tabelle dargestellt.
| Variablenname | Beschreibung | Standardwert | Kontext |
|---|---|---|---|
bc-url |
Die REST-Proxy-URL der Oracle Blockchain Platform-Instanz, in der der Chaincode bereitgestellt wird | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
alle Chaincodes |
bc-channel |
Der Kanal, in dem der Chaincode bereitgestellt wird | default |
alle Chaincodes |
bc-admin-user |
Der Name des Administrators (ein Benutzer mit der Rolle admin, der auf alle POST-Anforderungen zugreifen kann). Standardmäßig ist dieser Benutzer der Aufrufer aller POST-Anforderungen im Chaincode
|
bc-admin-user value |
alle Chaincodes |
bc-admin-password |
Das Kennwort für den Administratorbenutzer | bc-admin-password value |
alle Chaincodes |
bc-timeout |
Der Timeoutwert im Body jeder POST-Anforderung zur Angabe des Timeoutintervalls | 6000 |
alle Chaincodes |
bc-sync |
Der Synchronisierungswert im Hauptteil jeder POST-Anforderung, der angibt, ob die Anforderung synchron oder asynchron ist | true |
alle Chaincodes |
bc-chaincode-name |
Der Chaincode-Name, der in jeder POST-Anforderung verwendet wird | chaincode name |
alle Chaincodes |
bc-org-id |
Der Standardparameter orgId für alle POST-Anforderungen
|
bc-org-id value |
Nur Token Chaincodes |
bc-user-id |
Der Standardparameter userId für alle POST-Anforderungen
|
bc-user-id value |
Nur Token Chaincodes |
bc-token-id |
Der Standardparameter tokenId für alle POST-Anforderungen
|
bc-token-id value |
Nur Token Chaincodes |
In jeder generierten Anforderung werden alle Parameter mit Standardwerten generiert. Funktionen mit Struktur-/Klassenparametern haben ein Platzhalterobjekt im Anforderungsbody, wie in den folgenden Beispielen gezeigt.
- API mit einem Struktur-/Klassenparameter
-
{ "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 ohne Struktur-/Klassenparameter
-
{ "chaincode": "{{bc-chaincode-name}}", "args": [ "CreateAccount", "{{bc-org-id}}", "example_minter", "true", "true" ], "timeout": {{bc-timeout}}, "sync": {{bc-sync}} }
Der Standardwert für die meisten API-Parameter ist parameter_name value, mit einigen Ausnahmen. Die folgenden Beispiele zeigen einige der Ausnahmen.
- Der Filterparameter in
GetAccountTransactionHistoryWithFilters:"{\"PageSize\":20,\"Bookmark\":\"\",\"StartTime\":\"2022-01-16T15:16:36+00:00\",\"EndTime\":\"2022-01-17T15:16:36+00:00\"}" - Der Filterparameter in
GetSubTransactionsByIdWithFilters:"{\"PageSize\":20,\"Bookmark\":\"\}"
Eine Struktur oder Klasse hat andere Standardwerte, wie in der folgenden Tabelle dargestellt:
| Datentyp | Standardwert |
|---|---|
boolean/bool |
true |
int/number |
999 |
date |
2022-01-16T15:16:36+00:00 |
other |
parameter_name value |
ERC-1155 Token-Projekte
Der ERC-1155-Standard umfasst gängige Methoden für fungible und nicht fungible Token. Die generierte Postman-Sammlung für ein ERC-1155-Projekt, das sowohl fungible als auch nicht fungible Token verwendet, umfasst zwei verschiedene POST-Anforderungen, eine für jeden Tokentyp, für diese gemeinsamen Methoden. Wenn ein ERC-1155-Projekt nur fungible oder nicht fungible Token, aber nicht beide Typen verwendet, enthält die generierte Postman-Sammlung nur eine POST-Anforderung für diese allgemeinen Methoden. In der folgenden Tabelle wird die generierte API für die MethodeAddRole dargestellt.
| Anforderungselement | Fungible Token | Nicht-Fungible Token |
|---|---|---|
| Anforderungsname | AddRole -For Fungible |
AddRole -For NonFungible |
| Anforderungsbody |
|
|