Componentes de paquete de API de envoltorio
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 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 Postman se denomina
<ChaincodeName>_WrapperAPI.postman_collection.json
. Puede utilizar esta recopilación para llamar a todas las API de envoltorio.
Paquete API envoltorio
El paquete de API de encapsulador contiene un script de Terraform que aprovisiona todos los recursos de Oracle Cloud Infrastructure (OCI) necesarios para crear las API de encapsulador. 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.
- API Gateway: crea el gateway para gestionar y enrutar las 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.
terraform.tfvars
con puntos finales y nombres de recursos actualizados y el archivo routes.go
con puntos finales actualizados. Edite la variable function_paths
en el archivo terraform.tfvars
para actualizar un punto final. La variable function_paths define los puntos finales con la siguiente sintaxis: {endpoint, methodType}
. El siguiente texto muestra un ejemplo de una variable function_paths
.function_paths="[{\"endpoint\":\"/activateCBDCAccount\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/addCBAdmin\",\"methodType\":[\"POST\"]},{\"endpoint\":\"/approveBurn\",\"methodType\":[\"POST\"]}]"
El archivo routes.go
está en la carpeta <ChaincodeName>OCIFunction
. La variable routeData
contiene metadatos para todas las rutas creadas en el gateway, incluidos el nombre de ruta, los argumentos y si hay argumentos opcionales. Al actualizar un punto final en la variable function_paths
en el archivo terraform.tfvars
, también debe actualizar la entrada correspondiente en la variable routeData
en el archivo routes.go
, como se muestra en el siguiente ejemplo.var routeData = map[string]Route{
"/activateCBDCAccount": {
Args: []string{"activateAccount", "orgId", "userId", "tokenId"},
OptionalParams: true,
},
}
Colección Postman
Las recopilaciones de Postman ahora admiten el código de cadena confidencial y la autenticación OAuth 2.0. Para obtener más información, consulte Mejoras en Postman Collections.
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"applicationGroups": "[\"application_groups value\"]",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
"endorsers": {{endorsers}}
}
Variable | Descripción | Valor por defecto |
---|---|---|
bc-admin-user |
El usuario administrativo, que tiene el rol admin y puede acceder a todas las solicitudes POST. Por defecto, este usuario es el emisor de llamada de todas las solicitudes POST en el código de cadena.
|
valor bc-admin-user |
bc-admin-user-password |
Contraseña de usuario administrativo. | valor bc-admin-user-password |
bc-org-id |
ID de organización por defecto en todas las solicitudes POST donde orgId es el nombre del parámetro
|
valor bc-org-id |
bc-user-id |
El ID de usuario por defecto en todas las solicitudes POST donde userId es el nombre del parámetro
|
valor bc-user-id |
bc-token-id |
ID de token por defecto en todas las solicitudes POST donde tokenId es el nombre del parámetro
|
valor bc-token-id |
endorsers |
En la matriz de endosadores se muestran los iguales 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 dinámicamente como |
https://xyz.apigateway.region.oci.customer-oci.com/CBDC |
bc-url |
URL de proxy de REST de la instancia de Oracle Blockchain Platform. | https://test-xyz-abc.blockchain.ocp.oraclecloud.com:7443/restproxy |
access-token-url |
URL del token de acceso de Oracle Identity Cloud Service (IDCS). Por ejemplo: <idcs_endpoint>/oauth/v1/token |
valor acceso-token-url |
client-id |
ID de cliente de la instancia de Oracle Blockchain Platform. | ID de cliente |
client-secret |
Secreto de cliente de la instancia de Oracle Blockchain Platform. | cliente-secreto |
peer |
Esta variable solo existe para la recopilación de Postman de API de contenedor de código de cadena confidencial, que requiere la cabecera peer para todas las API setter y getter. | org-xyz-abc.blockchain.ocp.oraclecloud.com:20009 |
Después de desplegar el paquete de API de envoltorio, la salida del despliegue de recursos 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 el gestor de recursos de pila.
endorsers
o sameOrgEndorser
en la carga útil de la solicitud. La información que especifica qué API necesitan el parámetro sameOrgEndorser
se define en el parámetro sameOrgEndorserOptionInWrapperAPI
del archivo .ochain.json
en el código de cadena. 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 el parámetro endorsers
en su lugar. En el siguiente ejemplo se 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.