API de envoltorio
La versión mejorada de Blockchain App Builder puede generar API de envoltorio para API Gateway, que soportan puntos finales dedicados para cada método de código de cadenas.
Una API de envoltorio es una capa de abstracción sobre un punto final de Oracle Blockchain Platform. Las API de envoltorio soportan la configuración de parámetros comunes y nombres de punto final específicos de la API, lo que puede simplificar el uso y la claridad.
En la versión base de Oracle Blockchain Platform, un punto final de API necesita parámetros que incluyen el nombre del código de cadena, los valores de timeout y sincronización, los argumentos (incluido el nombre del método), el nombre del canal y la URL de la instancia. Estos parámetros se deben transferir con cada llamada. Debido a que la mayoría de estos parámetros son comunes a todos los métodos, puede utilizar la funcionalidad de API de envoltorio para crear un punto final para cada método, que a continuación llamará utilizando solo los parámetros de método. En lugar de un punto final común, ya sea una transacción o una consulta, puede tener un nombre de punto final personalizado para cada método. Mientras que los puntos finales de API de Oracle Blockchain Platform utilizan solicitudes POST, las API de envoltorio soportan solicitudes POST y GET. También puede agregar una capa adicional de autenticación con API de envoltorio mediante el mecanismo de autenticación de gateway de API.
En el siguiente ejemplo se muestra la API del método createAccount en Oracle Blockchain Platform.
Punto final: https://blockchain.example.com:7443/restproxy/api/v2/channels/default/transactions
{
"chaincode": "{{bc-chaincode-name}}",
"args": [
"createAccount",
"{{bc-org-id}}",
"{{bc-user-id}}",
"fungible",
"{\"max_daily_amount\":10000,\"max_daily_transactions\":100}"
],
"timeout": {{bc-timeout}},
"sync": {{bc-sync}}
}
Si configura las API de envoltorio, puede realizar la misma llamada al método como se muestra en el siguiente ejemplo.
Punto final: https://apigateway.example.com/appbuilder/createAccount
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
}