Générer une collection Postman à l'aide du code Visual Studio
Vous pouvez créer une collection Postman qui inclut des exemples de charge utile pour toutes vos API de contrôleur de code chaîne.
Postman est un outil que vous pouvez utiliser pour utiliser et tester les API REST. La commande generate crée une collection Postman qui est basée sur le code chaîne généré automatiquement à partir d'un fichier de spécification déclarative. La collection Postman contient les charges utiles pour toutes les méthodes spécifiées dans le fichier de contrôleur de code chaîne. Vous pouvez modifier les valeurs de variable dans le fichier de collection Postman pour effectuer des appels d'API REST.
La collection Postman générée inclut des valeurs par défaut pour toutes les API du contrôleur. Pour en savoir plus sur Postman, consultez le site https://www.postman.com/. Après avoir généré une collection Postman, vous pouvez l'importer directement et l'utiliser en modifiant les valeurs par défaut dans la charge utile et les variables.
Pour générer une collection Postman pour un projet de code chaîne dans Visual Studio Code, procédez comme suit.
- Sélectionnez le projet de code chaîne dans le panneau Codes chaîne.
- Cliquez avec le bouton droit de la souris sur le nom du code chaîne, puis sélectionnez Generate Postman Collection.
- Sélectionnez un emplacement dans lequel enregistrer la collection Postman, puis cliquez sur Sélectionner un dossier de sortie.
Si la collection Postman spécifiée existe déjà, vous êtes invité à la remplacer ou non.
Structure de recouvrement Postman
- Les demandes d'appel incluent toutes les opérations d'écriture, qui utilisent l'adresse
/transactions
- Les demandes de requête incluent toutes les opérations get, qui utilisent l'adresse
/chaincode-queries
Pour différencier les méthodes get et non get dans les API de contrôleur, un décorateur est utilisé dans les codes chaîne TypeScript et un commentaire est utilisé dans les codes chaîne Go. Si vous définissez une méthode get dans le contrôleur, vous devez utiliser le décorateur GetMethod pour TypeScript ou le commentaire GetMethod pour Go, comme indiqué dans le tableau suivant.
TypeScript | Go |
---|---|
Chaque méthode get dispose d'un décorateur GetMethod :
|
Chaque méthode get comporte un bloc de commentaires GetMethod :
|
Les collections Postman générées incluent des variables avec des valeurs par défaut, comme indiqué dans le tableau suivant.
Nom de variable | Description | Valeur par défaut | Contexte |
---|---|---|---|
bc-url |
URL de proxy REST de l'instance Oracle Blockchain Platform sur laquelle le code chaîne est déployé | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
tous les codes chaîne |
bc-channel |
Canal sur lequel le code chaîne est déployé | default |
tous les codes chaîne |
bc-admin-user |
Nom de l'administrateur (utilisateur doté du rôle admin qui peut accéder à toutes les demandes POST). Par défaut, cet utilisateur est l'appelant de toutes les demandes POST dans le code chaîne
|
bc-admin-user value |
tous les codes chaîne |
bc-admin-password |
Mot de passe de l'administrateur | bc-admin-password value |
tous les codes chaîne |
bc-timeout |
Valeur de délai d'attente dans le corps de chaque demande POST pour indiquer l'intervalle de délai d'attente | 6000 |
tous les codes chaîne |
bc-sync |
Valeur de synchronisation dans le corps de chaque demande POST pour indiquer si la demande est synchrone ou asynchrone | true |
tous les codes chaîne |
bc-chaincode-name |
Nom du code chaîne, qui est utilisé dans chaque demande POST | chaincode name |
tous les codes chaîne |
bc-org-id |
Paramètre orgId par défaut pour toutes les demandes POST
|
bc-org-id value |
codes chaîne de jeton uniquement |
bc-user-id |
Paramètre userId par défaut pour toutes les demandes POST
|
bc-user-id value |
codes chaîne de jeton uniquement |
bc-token-id |
Paramètre tokenId par défaut pour toutes les demandes POST
|
bc-token-id value |
codes chaîne de jeton uniquement |
Dans chaque demande générée, tous les paramètres avec des valeurs par défaut sont générés. Les fonctions qui ont des paramètres de structure/classe auront un objet de réserve dans le corps de la demande, comme indiqué dans les exemples suivants.
- API avec un paramètre structure/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}} }
- API sans paramètre struct/class
-
{ "chaincode": "{{bc-chaincode-name}}", "args": [ "CreateAccount", "{{bc-org-id}}", "example_minter", "true", "true" ], "timeout": {{bc-timeout}}, "sync": {{bc-sync}} }
La valeur par défaut de la plupart des paramètres d'API est parameter_name value
, à quelques exceptions près. Les exemples suivants présentent certaines exceptions.
- Paramètre de filtres dans
GetAccountTransactionHistoryWithFilters
:"{\"PageSize\":20,\"Bookmark\":\"\",\"StartTime\":\"2022-01-16T15:16:36+00:00\",\"EndTime\":\"2022-01-17T15:16:36+00:00\"}"
- Paramètre de filtres dans
GetSubTransactionsByIdWithFilters
:"{\"PageSize\":20,\"Bookmark\":\"\}"
Une structure ou une classe a des valeurs par défaut différentes, comme indiqué dans le tableau suivant :
Type de données | Valeur par défaut |
---|---|
boolean/bool |
true |
int/number |
999 |
date |
2022-01-16T15:16:36+00:00 |
other |
parameter_name value |
ERC-1155 Projets de jetons
La norme ERC-1155 inclut des méthodes communes pour les jetons fongibles et non fongibles. La collection Postman générée pour un projet ERC-1155 qui utilise à la fois des jetons fongibles et non fongibles comprend deux demandes POST différentes, une pour chaque type de jeton, pour ces méthodes courantes. Si un projet ERC-1155 utilise uniquement des jetons fongibles ou non fongibles mais pas les deux types, la collection Postman générée inclut une seule demande POST pour ces méthodes courantes. Le tableau suivant illustre l'API générée pour la méthodeAddRole
.
Elément de demande | Jetons fongibles | Jetons non fongibles |
---|---|---|
Nom de la demande | AddRole -For Fungible |
AddRole -For NonFungible |
Corps de demande |
|
|