API de envoltorio

La versión mejorada de Blockchain App Builder puede generar API de envoltorio para API Gateway, que admiten puntos finales dedicados para cada método de código de cadena.

Una API de envoltorio es una capa de abstracción sobre un punto final de Oracle Blockchain Platform. Las API de envoltorio admiten 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 incluyan 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 instancia. Estos parámetros se deben transferir con cada llamada. Dado que la mayoría de estos parámetros son comunes a todos los métodos, puede utilizar la funcionalidad de API de encapsulador para crear un punto final para cada método, al que, a continuación, llamará utilizando solo los parámetros del 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 admiten tanto solicitudes POST como solicitudes GET. También puede agregar una capa adicional de autenticación con API de envoltorio mediante el mecanismo de autenticación de API Gateway.

En el siguiente ejemplo se muestra la API del método createAccount en Oracle Blockchain Platform.

Punto final: https://<blockchain_instance>:7443/restproxy/api/v2/channels/<channelName>/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 que se muestra en el siguiente ejemplo.

Punto final: https://<gateway-hostname>/<deployment-path-prefix>/<route-path>

{
    "orgId": "{{bc-org-id}}",
    "userId": "user1",
    "tokenType": "fungible",
    "dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
}