Postman-Sammlung mit Visual Studio Code generieren
Sie können eine Postman-Sammlung erstellen, die Beispiel-Payloads für alle Ihre Chaincode-Controller-APIs enthält.
Postman ist ein Tool, mit dem Sie mit REST-APIs arbeiten und diese testen können. Der Befehl "generieren" 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-Controller-Datei angegeben sind. Sie können die Variablenwerte in der Postman-Collection-Datei ändern, um REST-API-Aufrufe auszuführen.
Die generierte Postman-Sammlung 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.
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 für die Postman-Sammlung, und klicken Sie dann auf Ausgabeordner auswählen.
Wenn die angegebene Postman-Sammlung bereits vorhanden ist, werden Sie aufgefordert, sie zu überschreiben.
Inkassostruktur des Postman
- Aufrufanforderungen umfassen alle Schreibvorgänge, die den Endpunkt
/transactions
verwenden. - Abfrageanforderungen umfassen alle get-Vorgänge, die den Endpunkt
/chaincode-queries
verwenden
Um zwischen Getter- und Nicht-getter-Methoden in den Controller-APIs zu unterscheiden, wird ein Dekorator in TypeScript-Kettencodes verwendet, und ein Kommentar wird in Go-Kettencodes verwendet. Wenn Sie eine Getter-Methode im Controller definieren, müssen Sie den Dekorator GetMethod für TypeScript oder den Kommentar GetMethod für Go verwenden, wie in der folgenden Tabelle dargestellt.
TypeScript | Los |
---|---|
Jede Getter-Methode verfügt über einen GetMethod -Dekorator:
|
Jede Getter-Methode hat einen Kommentarblock GetMethod :
|
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 Admin-Benutzers (ein Benutzer mit der Admin-Rolle, 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 Admin-Benutzer | 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, um anzugeben, 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-Kettencodes |
bc-user-id |
Der Standardparameter userId für alle POST-Anforderungen
|
bc-user-id value |
Nur Token-Kettencodes |
bc-token-id |
Der Standardparameter tokenId für alle POST-Anforderungen
|
bc-token-id value |
Nur Token-Kettencodes |
In jeder generierten Anforderung werden alle Parameter mit Standardwerten generiert. Funktionen mit Struktur-/Klassenparametern haben ein Platzhalterobjekt im Anforderungstext, wie in den folgenden Beispielen dargestellt.
- 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 unterschiedliche 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 Tokenprojekte
Der ERC-1155-Standard umfasst gängige Methoden sowohl für fungible als auch für nicht fungible Token. Die generierte Postman-Sammlung für ein ERC-1155-Projekt, das sowohl fungible als auch nicht fungible Token verwendet, enthält 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 gemeinsamen Methoden. In der folgenden Tabelle ist die generierte API für die MethodeAddRole
dargestellt.
Fungible Token | Nicht-unglaubliche Token | |
---|---|---|
Anforderungsname | AddRole -For Fungible |
AddRole -For NonFungible |
Anforderungsbody |
|
|