Postman-Sammlung mit der CLI generieren
Mit dem Befehl generate können Sie eine Postman-Collection 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.
Verwendung:
generate [options]ochain generate -h
Usage: generate [options]
Generates the postman collection for the chaincode.
Options :
-h, --help output command usage information
-D, --debug enable debug logging
-c, --collection This option is mandatory to generate a Postman collection.
-p, --project <path> Path to the chaincode project to generate the Postman collection from. If not specified, it defaults to current directory.
-o, --out <path> Path to the generated Postman collection JSON file. If not specified, it defaults to current directory.Um eine Postman-Sammlung zu generieren, navigieren Sie in das Verzeichnis, das das Projekt enthält, und geben Sie den folgenden Befehl ein. Sie müssen den Befehl generate aus dem Chaincode-Verzeichnis ausführen, da sonst ein Fehler auftritt. Wenn die angegebene Postman-Sammlung bereits vorhanden ist, werden Sie aufgefordert, sie zu überschreiben.
ochain generate --collection --project path_to_chaincode_project --out path_to_postman_collection_to_generatePostman-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 |
|
|