使用 Visual Studio 程式碼產生 Postman Collection
您可以建立 Postman 集合,其中包含所有鏈碼控制器 API 的範例有效負載。
Postman 是一種工具,可用來使用及測試 REST API。Generate 命令會根據從宣告式規格檔案自動產生的鏈碼建立 Postman 集合。Postman 集合包含鏈碼控制器檔案中指定之所有方法的有效負載。您可以變更 Postman 收集檔案中的變數值,以進行 REST API 呼叫。
產生的 Postman 集合包括控制器中所有 API 的預設值。若要進一步瞭解 Postman,請參閱 https://www.postman.com/ 。產生 Postman 集合後,您可以直接匯入該集合,並藉由變更有效負載和變數中的預設值來加以使用。
若要在 Visual Studio Code 中產生鏈碼專案的 Postman 集合,請完成下列步驟。
- 在鏈碼窗格中選取鏈碼專案。
- 在鏈碼名稱上按一下滑鼠右鍵,然後選取產生 Postman Collection 。
- 選取要儲存 Postman 集合的位置,然後按一下選取輸出資料夾。
如果指定的 Postman 收藏已經存在,則系統會提示您是否要覆寫它。
Postman 收藏結構
- 呼叫要求包括使用端點
/transactions
的所有寫入作業 - 查詢要求包括使用端點
/chaincode-queries
的所有取得作業
為了區分控制器 API 中的 getter 和 non-getter 方法,會在 TypeScript 鏈碼中使用修飾器,並在 Go 鏈碼中使用註解。如果您在控制器中定義 getter 方法,則必須使用 TypeScript 的 GetMethod 修飾器或 Go 的 GetMethod 註解,如下表所示。
TypeScript | 移至 |
---|---|
每個 getter 方法都有一個 GetMethod 修飾器:
|
每個 getter 方法都有 GetMethod 註解區塊:
|
產生的 Postman 集合包括含有預設值的變數,如下表所示。
變數名稱 | 描述 | 預設值 | 相關資訊環境 |
---|---|---|---|
bc-url |
部署鏈碼之 Oracle Blockchain Platform 執行處理的 REST 代理主機 URL | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
所有鏈碼 |
bc-channel |
部署鏈碼的通道 | default |
所有鏈碼 |
bc-admin-user |
管理員使用者的名稱 (具備可存取所有 POST 要求之管理員角色的使用者)。依照預設,此使用者是鏈碼中所有 POST 要求的呼叫者 | bc-admin-user value |
所有鏈碼 |
bc-admin-password |
管理員使用者的密碼 | bc-admin-password value |
所有鏈碼 |
bc-timeout |
每個 POST 要求的主體中指示逾時間隔的逾時值 | 6000 |
所有鏈碼 |
bc-sync |
每個 POST 要求主體中的同步值,指示要求是同步還是非同步 | true |
所有鏈碼 |
bc-chaincode-name |
每個 POST 要求中使用的鏈碼名稱 | chaincode name |
所有鏈碼 |
bc-org-id |
所有 POST 要求的預設 orgId 參數
|
bc-org-id value |
僅記號鏈碼 |
bc-user-id |
所有 POST 要求的預設 userId 參數
|
bc-user-id value |
僅記號鏈碼 |
bc-token-id |
所有 POST 要求的預設 tokenId 參數
|
bc-token-id value |
僅記號鏈碼 |
在每個產生的要求中,會產生所有含有預設值的參數。具有結構 / 類別參數的函數在要求主體中將會有預留位置物件,如下列範例所示。
- API 搭配 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}} }
- 不含 struct/class 參數的 API
-
{ "chaincode": "{{bc-chaincode-name}}", "args": [ "CreateAccount", "{{bc-org-id}}", "example_minter", "true", "true" ], "timeout": {{bc-timeout}}, "sync": {{bc-sync}} }
大多數 API 參數的預設值為 parameter_name value
,但有一些例外。下列範例顯示某些例外。
GetAccountTransactionHistoryWithFilters
中的 filter 參數:"{\"PageSize\":20,\"Bookmark\":\"\",\"StartTime\":\"2022-01-16T15:16:36+00:00\",\"EndTime\":\"2022-01-17T15:16:36+00:00\"}"
GetSubTransactionsByIdWithFilters
中的 filter 參數:"{\"PageSize\":20,\"Bookmark\":\"\}"
結構或類別具有不同的預設值,如下表所示:
資料類型 | 預設值 |
---|---|
boolean/bool |
true |
int/number |
999 |
date |
2022-01-16T15:16:36+00:00 |
other |
parameter_name value |
ERC-1155 權杖專案
ERC-1155 標準包含有趣和不可行記號的常用方法。為 ERC-1155 專案產生的 Postman 集合,該專案使用了不合法的記號與不合法的記號,其中包含了兩種不同的 POST 要求,每一種類型的記號,適用於這些常用的方法。如果 ERC-1155 專案只使用有趣或不合格的記號,但不是兩種類型,則產生的 Postman 集合只會包含這些一般方法的一個 POST 要求。下表說明為AddRole
方法產生的 API。
有趣的代幣 | 不合法的代幣 | |
---|---|---|
要求名稱 | AddRole -For Fungible |
AddRole -For NonFungible |
要求主體 |
|
|