Generación de API de envoltorio con la CLI

La versión mejorada de Blockchain App Builder incluye el comando generateFnAPI, que genera API de envoltorio para todas las API de controlador en un proyecto de código de cadena.

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.
En el siguiente ejemplo se muestra cómo generar API de envoltorio para un proyecto de código de cadena 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>

Al ejecutar el comando generateFnAPI, se le pregunta si desea sobrescribir los paquetes de API de envoltorio anteriores que existan en la ubicación de selección.

API Gateway limita el número de rutas que se pueden crear en un solo despliegue a 50. Si intenta utilizar el comando generateFnAPI para generar más de 50 API de envoltorio, se le preguntará si desea crear varios gateways. La creación de varios gateways con el mismo prefijo de ruta de despliegue mantiene una ruta de acceso base consistente en todos los puntos finales de API de encapsulador. Si decide no crear varios gateways, se cancela la generación de API de envoltorio. Puede utilizar el parámetro gateway_ocids como se describe en la siguiente información para reutilizar gateways existentes.

Opciones de Comando

-m, --mapping <mapping>
La opción de asignación define la configuración de las API de controlador, especificando los nombres de punto final y las API de controlador que requieren la generación de API de envoltorio. El mapa es un objeto JSON de pares de clave/valor, donde la clave es el nombre de la API del controlador y el valor es el punto final personalizado que se debe asociar a esa API del controlador.

En el siguiente ejemplo se muestra una asignación para el código de cadena que utiliza el estándar extendido 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>
La opción de configuración se utiliza para transferir las variables de configuración necesarias para el paquete de API de envoltorio. Se trata de un objeto JSON de pares clave/valor, donde la clave es el nombre de la variable de configuración y el valor es el valor de la variable de configuración. Todas las variables de configuración, excepto gateway_ocids, son obligatorias para generar un paquete de API de encapsulador. Si alguna de las siguientes variables, excepto gateway_ocids, no se transfiere al comando, falla la generación de la API de envoltorio. Puede editar estos valores después de crear la API de envoltorio extrayendo el archivo .zip de la API de envoltorio.
Nombre de la variable Descripción
compartment_ocid OCID del compartimento en Oracle Cloud Infrastructure (OCI).
compartment_name Nombre del compartimento de OCI.
identity_domain Dominio de identidad que se va a utilizar.
blockchain_channel Nombre del canal de Oracle Blockchain Platform donde se despliega el código de cadena.
blockchain_url URL de Oracle Blockchain Platform asociada al despliegue de código de cadena.
blockchain_chaincode Nombre del código de cadena para el que se van a generar las API de envoltorio.
blockchain_sync Valor de sincronización que se debe incluir en la carga útil de las llamadas de API.
blockchain_timeout Valor de timeout que se debe incluir en la carga útil para llamadas de API.
vcn_display_name Nombre mostrado de la red virtual en la nube de OCI.
application_display_name Nombre mostrado de la aplicación de OCI.
gateway_display_name Nombre mostrado de API Gateway.
deployment_display_name Nombre mostrado del despliegue en API Gateway.
deployment_path_prefix Prefijo de ruta de acceso de despliegue en API Gateway, que especifica la ruta de acceso donde se despliegan las rutas. La variable deployment_path_prefix debe comenzar con una barra inclinada (/).
ocir_repo_name Nombre del repositorio de OCI Registry. La variable ocir_repo_name debe ser todas letras en minúscula.
policy_name Nombre de la política que permite una gestión controlada y el acceso a las API mediante permisos definidos para grupos y compartimentos de la organización
gateway_ocids Objeto JSON de identificadores de Oracle Cloud (OCID) para que los gateways de API existentes se reutilicen. Debe especificar un gateway por cada 50 API de envoltorio. Si no especifica un parámetro gateway_ocids, el comando crea gateways de API.

En el siguiente ejemplo se muestra un comando para el código de cadena que utiliza el estándar extendido 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"}'

En el siguiente ejemplo se muestra un comando que utiliza el parámetro 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>
La opción all genera una API de envoltorio para todas las API de controlador que están definidas en el código de cadena. Si es true, esta opción sustituye la opción de asignación. A cada API de envoltorio se le asigna un punto final por defecto, que corresponde al nombre de la API. Si especifica la opción Todos, debe proporcionar un objeto JSON vacío ({}) para la opción de asignación.

En el siguiente ejemplo se muestra una asignación para el código de cadena que utiliza el estándar extendido 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