API d'encapsuleur

La version améliorée de Blockchain App Builder peut générer des API d'encapsulation pour API Gateway, qui prennent en charge des points d'extrémité dédiés pour chaque méthode de code de chaîne.

Une API d'encapsuleur est une couche d'abstraction sur un point d'extrémité Oracle Blockchain Platform. Les API d'encapsuleur prennent en charge la configuration des paramètres communs et des noms de point d'extrémité propres à l'API, ce qui peut simplifier l'utilisation et la clarté.

Dans la version de base d'Oracle Blockchain Platform, un point d'extrémité d'API nécessite des paramètres tels que le nom du code de chaîne, la temporisation et les valeurs de synchronisation, les arguments (y compris le nom de la méthode), le nom du canal et l'URL de l'instance. Ces paramètres doivent être transmis à chaque appel. Comme la plupart de ces paramètres sont communs à toutes les méthodes, vous pouvez utiliser la fonctionnalité d'API wrapper pour créer un point d'extrémité pour chaque méthode, que vous appelez ensuite en utilisant uniquement les paramètres de la méthode. Au lieu d'un point d'extrémité commun, soit une transaction, soit une interrogation, vous pouvez avoir un nom de point d'extrémité personnalisé pour chaque méthode. Alors que les points d'extrémité d'API d'Oracle Blockchain Platform utilisent des demandes POST, les API wrapper prennent en charge les demandes POST et GET. Vous pouvez également ajouter une couche supplémentaire d'authentification avec les API d'encapsuleur à l'aide du mécanisme d'authentification du service de passerelle d'API.

L'exemple suivant présente l'API de méthode createAccount dans Oracle Blockchain Platform.

Point d'extrémité : 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 vous configurez des API wrapper, vous pouvez effectuer le même appel de méthode que dans l'exemple suivant.

Point d'extrémité : 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}",
}