Componentes del Paquete de API de Wrapper

Los paquetes de la API de envoltorio contienen un archivo de almacenamiento de las API de envoltorio, un script de Terraform para el despliegue y una recopilación de Postman correspondiente.

  • El archivo de almacenamiento de la API de envoltorio se denomina <ChaincodeName>WrapperAPI.zip. También contiene un script de Terraform que se debe desplegar en el recurso de pila.
  • El archivo de recopilación de Postman se denomina <ChaincodeName>_WrapperAPI.postman_collection.json. Puede utilizar esta recopilación para llamar a todas las API de envoltorio.

Paquete de API de Wrapper

El paquete de API de envoltorio contiene un script de Terraform que aprovisiona todos los recursos de Oracle Cloud Infrastructure (OCI) necesarios para crear las API de envoltorio. Hay archivos de soporte de Terraform adicionales y una carpeta de Oracle Functions para cada API. Los paquetes de API de envoltorio crean los siguientes recursos de OCI.

  • Red virtual en la nube (VCN): establece la infraestructura de red para la comunicación.
  • Aplicaciones (Oracle Functions): despliega funciones sin servidor para manejar la lógica de API.
  • Gateway de API: crea el gateway para gestionar y direccionar solicitudes de API.
  • Despliegue de API: configura y despliega las API en API Gateway.
  • Política de despliegue de API: configura las políticas de IAM necesarias para activar el acceso seguro.
  • OCI Registry: proporciona un registro de contenedor para gestionar imágenes de Docker.
Después de generar las API de envoltorio, si desea cambiar cualquier variable de configuración, puede actualizarlas en Visual Studio Code, o puede extraer el paquete de API de envoltorio y actualizar el archivo terraform.tfvars con puntos finales y nombres de recursos actualizados. Edite la variable function_paths en el archivo terraform.tfvars para actualizar un punto final. La variable function_paths es un objeto JSON donde la clave es el nombre de la API y el valor es otro objeto JSON con las dos claves siguientes:
  • path: define el punto final para la API
  • type: especifica el tipo de solicitud (POST o GET).
El siguiente texto muestra un ejemplo de una variable function_paths.
function_paths="{\"activateAccount\":{\"path\":\"/activateAccount\",\"type\":[\"POST\"]}}"

Colección Postman

La recopilación Postman incluye puntos finales y cargas útiles actualizados para todas las API. El siguiente código muestra un ejemplo de carga útil.
{
    "orgId": "{{bc-org-id}}",
    "userId": "user1",
    "tokenType": "fungible",
    "applicationGroups": "[\"application_groups value\"]",
    "dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
    "endorsers": {{endorsers}}
}
En la siguiente tabla se muestran las variables de recopilación de Postman.
Variable Descripción Valor por defecto
bc-admin-user El usuario administrador, que tiene el rol de administrador donde tiene acceso a todas las solicitudes POST. Por defecto, este usuario es el emisor de llamada de todas las solicitudes POST del código de cadenas. valor bc-admin-user
bc-admin-user-password Contraseña de usuario administrador. valor de bc-admin-user-password
bc-org-id ID de organización por defecto en todas las solicitudes POST en las que orgId es el nombre del parámetro valor de bc-org-id
bc-user-id ID de usuario por defecto en todas las solicitudes POST en las que userId es el nombre del parámetro valor de bc-user-id
bc-token-id ID de token por defecto en todas las solicitudes POST en las que tokenId es el nombre del parámetro valor de bc-token-id
endorsers La matriz de endosadores muestra los peers específicos (por ejemplo: peer1, peer2) para endosar esta transacción. ["org1-xyz-abc.blockchain.ocp.oraclecloud.com:20009", "org2-xyz-abc.blockchain.ocp.oraclecloud.com:20009"]
api-gateway-endpoint Punto final de cada solicitud, que sirve como ruta base para los puntos finales de API de envoltorio.

Si hay menos de 50 API, se utiliza un único punto final. Si hay más de 50 API, los puntos finales se generan de forma dinámica como api-gateway-endpoint1, api-gateway-endpoint2, etc., según el número de API.

https://xyz.apigateway.region.oci.customer-oci.com/CBDC
peer Esta variable solo existe para la recopilación Postman de API de encapsulador de código de cadena confidencial, que requiere la cabecera peer para todas las API de setter. org-xyz-abc.blockchain.ocp.oraclecloud.com:20009

Después de desplegar el paquete de API de envoltorio, la salida del despliegue del recurso de pila es un objeto JSON que contiene los valores de punto final de gateway. Si genera más de 50 API, se generan varios puntos finales de gateway, uno por cada 50 API. Debe actualizar las variables de recopilación de Postman relacionadas con estos puntos finales. Las variables relacionadas con el punto final de la recopilación Postman se deben actualizar con los valores adecuados de la salida del despliegue del paquete de API de envoltorio en Stack Resource Manager.

Todas las API de setter de la recopilación Postman de API de envoltorio incluyen el parámetro endorsers o sameOrgEndorser en la carga útil de solicitud. La información que especifica qué API necesitan el parámetro sameOrgEndorser se define en el parámetro sameOrgEndorserOptionInWrapperAPI del archivo .ochain.json del código de cadenas. Las API que se muestran en este parámetro tendrán sameOrgEndorser definido en true en sus cargas útiles. Todas las demás API de setter incluirán en su lugar el parámetro endorsers. El siguiente ejemplo muestra el parámetro para el código de cadena CBDC al por mayor.
"sameOrgEndorserOptionInWrapperAPI": ["addConversionRate","addTokenAdmin","addTokenAuditor","approveBurn","approveMint","burnTokens","createExchangePoolAccounts","deleteHistoricalTransactions","initializeCBDCToken","initializeExchangePoolUser","mintWithFundingExchangePool","rejectBurn","rejectMint","removeTokenAdmin","removeTokenAuditor","requestBurn","requestMint","updateCBDCToken","updateConversionRate"]
Puede personalizar el parámetro sameOrgEndorserOptionInWrapperAPI en el archivo .ochain.json según sea necesario. Al generar API de envoltorio, las API especificadas incluirán el parámetro sameOrgEndorser como true en sus cargas útiles.