Postman-Collection mit der CLI generieren
Mit dem Befehl generate
können Sie eine Postman-Collection 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.
Verwendung:
generate [options]
my-mac:TsProject myname$ 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 zu dem 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, sonst tritt ein Fehler auf. 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_generate
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 |
|
|