Générer des API de wrapper à l'aide de la CLI
La version améliorée de Blockchain App Builder inclut la commande generateFnAPI, qui génère des API de wrapper pour toutes les API de contrôleur dans un projet de code 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.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é à écraser les packages d'API de wrapper précédents qui existent à l'emplacement de sélection.
API Gateway limite à 50 le nombre de routages qui peuvent être créés dans un seul déploiement. Si vous essayez d'utiliser la commande generateFnAPI pour générer plus de 50 API de wrapper, vous êtes invité à créer plusieurs passerelles. La création de plusieurs passerelles avec le même préfixe de chemin de déploiement conserve un chemin de base cohérent sur toutes les adresses d'API de wrapper. Si vous choisissez de ne pas créer plusieurs passerelles, la génération de l'API de wrapper est annulée. Vous pouvez utiliser le paramètre gateway_ocids comme décrit dans les informations suivantes pour réutiliser des passerelles existantes.
Options de commande
- -m, --mapping <mapping>
- L'option de mise en correspondance définit la configuration des API de contrôleur, en spécifiant les noms d'adresse et les API de contrôleur nécessitant la génération d'API de wrapper. La carte est un objet JSON de paires clé/valeur, où la clé est le nom de l'API de contrôleur et la valeur est l'adresse personnalisée à associer à cette API de contrôleur.
L'exemple suivant présente un mapping pour le code chaîne qui utilise la norme étendue Token Taxonomy Framework.
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 package d'API wrapper. 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 la valeur de la variable de configuration. Toutes les variables de configuration à l'exception de
gateway_ocidssont obligatoires pour générer un package d'API de wrapper. Si l'une des variables suivantes, saufgateway_ocids, n'est pas transmise à la commande, la génération de l'API de wrapper échoue. Vous pouvez modifier ces valeurs après avoir créé l'API de wrapper en extrayant le fichier.zipde l'API de wrapper.Nom de variable Description compartment_ocidOCID du compartiment dans Oracle Cloud Infrastructure (OCI). compartment_nameNom du compartiment OCI. identity_domainDomaine d'identité à utiliser. blockchain_channelNom du canal Oracle Blockchain Platform sur lequel le code chaîne est déployé. blockchain_urlURL Oracle Blockchain Platform associée au déploiement de code chaîne. blockchain_chaincodeNom du code chaîne pour lequel générer des API de wrapper. blockchain_syncValeur de synchronisation à inclure dans la charge utile pour les appels d'API. blockchain_timeoutValeur de délai d'expiration à inclure dans la charge utile pour les appels d'API. vcn_display_nameNom d'affichage du réseau cloud virtuel OCI. application_display_nameNom d'affichage de l'application OCI. gateway_display_nameNom d'affichage de API Gateway. deployment_display_nameNom d'affichage du déploiement dans API Gateway. deployment_path_prefixPréfixe de chemin de déploiement dans API Gateway, qui indique le chemin où les routages sont déployés. La variable deployment_path_prefixdoit commencer par une barre oblique (/).ocir_repo_nameNom du référentiel OCI Registry. La variable ocir_repo_namedoit être composée de lettres minuscules.policy_nameNom de la stratégie qui permet une gestion contrôlée et un accès aux API via des droits d'accès définis pour les groupes et les compartiments au sein de l'organisation gateway_ocidsObjet JSON d'identificateurs Oracle Cloud (OCID) à réutiliser pour les passerelles d'API existantes. Vous devez indiquer une passerelle pour 50 API de wrapper. Si vous n'indiquez pas de paramètre gateway_ocids, la commande crée des passerelles d'API.L'exemple suivant présente une commande pour le code chaîne qui utilise la norme étendue Token Taxonomy Framework.
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"}'L'exemple suivant illustre une commande qui utilise le paramètre
gateway_ocids.ochain generateFnAPI -m '{"addConversionRate":"/addConversionRateTest", "addTokenAdmin": "/addTokenAdminTest"}' -c '{"compartment_ocid":"ocid1.compartment.oc1..xxxx","compartment_name":"MyCompartment","identity_domain":"OracleIdentityCloudService","blockchain_channel":"default","blockchain_url":"https://blockchain-url","blockchain_chaincode":"my_chaincode","blockchain_sync":true,"blockchain_timeout":6000,"vcn_display_name":"myVCN","application_display_name":"myApp","gateway_display_name":"myGateway","deployment_display_name":"myDeployment","deployment_path_prefix":"myprefix","ocir_repo_name":"myRepo","policy_name":"myPolicy","gateway_ocids":"{\"1\":\"ocid1.apigateway.oc1.xxx\",\"2\":\"ocid1.apigateway.oc1.yyy\"}"}' - -a, --all <all>
- L'option all génère une API de wrapper pour toutes les API de contrôleur définies dans le code chaîne. Si
true, cette option remplace l'option de mise en correspondance. Une adresse par défaut est affectée à chaque API de wrapper, qui correspond au nom de l'API. Si vous indiquez l'option all, vous devez toujours fournir un objet JSON ({}) vide pour l'option de mapping.L'exemple suivant présente un mapping pour le code chaîne qui utilise la norme étendue Token Taxonomy Framework.
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