Générer des API d'encapsulation à l'aide de l'interface de ligne de commande

La version améliorée du générateur d'applications de chaîne de blocs inclut la commande generateFnAPI, qui génère des API d'encapsulation pour toutes les API de contrôleur dans un projet de code de chaîne.

Usage: ochain generateFnAPI [options]
Generation of WrapperAPI package for controller functions
Options:
-h, --help                  Output command usage information
-D, --debug                 Enable debug logging
-m, --mapping <mapping>     Info about functions endpoints mapping is mandatory.
-c, --config <config>       Info about configuration variables is mandatory.
-a, --all <all>             Generate the wrapperAPI package for entire controller functions
-p, --project <path>        Path to the Ochain chaincode project to generate the WrapperAPI package. If not specified, it defaults to current directory.
L'exemple suivant montre comment générer des API d'encapsuleur pour un projet de code de chaîne local.
ochain generateFnAPI --mapping <info object about function mapping> --config <info about the config variables> --project <Path to the Ochain chaincode project> --out <Path to the generated postman collection>

Lorsque vous exécutez la commande generateFnAPI, vous êtes invité à remplacer les ensembles d'API d'encapsuleur précédents qui existent dans l'emplacement de sélection.

Le service de passerelle d'API limite à 50 le nombre de routes pouvant être créées dans un seul déploiement. Si vous essayez d'utiliser la commande generateFnAPI pour générer plus de 50 API d'encapsulation, vous êtes invité à créer plusieurs passerelles. La création de plusieurs passerelles avec le même préfixe de chemin de déploiement maintient un chemin de base cohérent sur tous les points d'extrémité d'API d'encapsuleur. Si vous choisissez de ne pas créer plusieurs passerelles, la génération de l'API d'encapsuleur est annulée.

Options de commande

-m, --mappage <mapping>
L'option de mappage définit la configuration des API de contrôleur, en spécifiant les noms de point d'extrémité et les API de contrôleur qui nécessitent la génération d'API wrapper. La carte est un objet JSON de paires clé-valeur, où la clé est le nom de l'API du contrôleur et la valeur est le point d'extrémité personnalisé à associer à cette API du contrôleur.

L'exemple suivant présente un mappage pour le code de chaîne qui utilise la norme Token Taxonomy Framework étendue.

ochain generateFnAPI --mapping '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest", "approveBurn": "/approveBurnTest", "createAccount": "/createAccount", "associateTokenToAccount": "/associateTokenToAccountTest", "getAllOrgAccounts": "/getAllOrgAccounts"}' --config <info about the config variables> --project <Path to the Ochain chaincode project> --out <Path to the generated postman collection>
-c, --config <config>
L'option de configuration est utilisée pour transmettre les variables de configuration requises pour le paquetage d'API d'encapsuleur. Il s'agit d'un objet JSON de paires clé-valeur, où la clé est le nom de la variable de configuration et la valeur est la valeur de la variable de configuration. Toutes les variables de configuration sont obligatoires pour générer un ensemble d'API wrapper. Si l'une des variables suivantes n'est pas transmise à la commande, la génération de l'API wrapper échoue. Vous pouvez modifier ces valeurs après avoir créé l'API d'encapsuleur en extrayant le fichier .zip de l'API d'encapsuleur.
Nom de variable Description
compartment_ocid OCID du compartiment dans Oracle Cloud Infrastructure (OCI).
compartment_name Nom du compartiment OCI.
identity_domain Domaine d'identité à utiliser.
blockchain_channel Nom du canal Oracle Blockchain Platform dans lequel le code de chaîne est déployé.
blockchain_url URL Oracle Blockchain Platform associée au déploiement de code de chaîne.
blockchain_chaincode Nom du code de chaîne pour lequel générer les API d'encapsulation.
blockchain_sync Valeur de synchronisation à inclure dans les données utiles pour les appels d'API.
blockchain_timeout Valeur de temporisation à inclure dans les données utiles pour les appels d'API.
vcn_display_name Nom d'affichage du réseau en nuage virtuel OCI.
application_display_name Nom d'affichage de l'application OCI.
gateway_display_name Nom d'affichage de la passerelle d'API.
deployment_display_name Nom d'affichage du déploiement dans la passerelle d'API.
deployment_path_prefix Préfixe du chemin de déploiement dans la passerelle d'API, qui spécifie le chemin où les routes sont déployées. La variable deployment_path_prefix doit commencer par une barre oblique (/).
ocir_repo_name Nom du référentiel du registre OCI. La variable ocir_repo_name doit contenir toutes des lettres minuscules.
policy_name Nom de la politique qui permet une gestion contrôlée et l'accès aux API au moyen d'autorisations définies pour les groupes et les compartiments de l'organisation.

L'exemple suivant présente un mappage pour le code de chaîne qui utilise la norme Token Taxonomy Framework étendue.

ochain generateFnAPI -m '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest", "approveBurn": "/approveBurnTest", "createAccount": "/createAccount", "associateTokenToAccount": "/associateTokenToAccountTest", "getAllOrgAccounts": "/getAllOrgAccounts"}' -c '{"compartment_ocid": "compartment_ocid value", "compartment_name": "compartment_name value", "identity_domain" : "OracleIdentityCloudService", "blockchain_channel": "default", "blockchain_url": "blockchain_url value", "blockchain_chaincode": "blockchain_chaincode value", "blockchain_sync": true, "blockchain_timeout": 6000, "vcn_display_name": "vcn_display_name value", "application_display_name": "application_display_name value", "gateway_display_name": "gateway_display_name value", "deployment_display_name": "deployment_display_name value", "deployment_path_prefix": "deployment_path_prefix value", "ocir_repo_name": "ocir_repo_name value", "policy_name": "policy_name value"}'
-a, --all <all>
L'option all génère une API d'encapsulation pour toutes les API de contrôleur définies dans le code de chaîne. Si true, cette option remplace l'option de mappage. Chaque API d'encapsuleur est affectée à un point d'extrémité par défaut, qui correspond au nom de l'API. Si vous spécifiez l'option All, vous devez toujours fournir un objet JSON vide ({}) pour l'option de mappage.

L'exemple suivant présente un mappage pour le code de chaîne qui utilise la norme Token Taxonomy Framework étendue.

ochain generateFnAPI -m '{}' -c '{"compartment_ocid": "compartment_ocid value", "compartment_name": "compartment_name value", "identity_domain" : "OracleIdentityCloudService", "blockchain_channel": "default", "blockchain_url": "blockchain_url value", "blockchain_chaincode": "blockchain_chaincode value", "blockchain_sync": true, "blockchain_timeout": 6000, "vcn_display_name": "vcn_display_name value", "application_display_name": "application_display_name value", "gateway_display_name": "gateway_display_name value", "deployment_display_name": "deployment_display_name value", "deployment_path_prefix": "deployment_path_prefix value", "ocir_repo_name": "ocir_repo_name value", "policy_name": "policy_name value"}' -a true