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.
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, exceptogateway_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