API de wrapper
La version améliorée de Blockchain App Builder peut générer des API de wrapper pour API Gateway, qui prennent en charge les adresses dédiées pour chaque méthode de code chaîne.
Une API de wrapper est une couche d'abstraction sur une adresse Oracle Blockchain Platform. Les API de wrapper prennent en charge la configuration de paramètres communs et de noms d'adresse propres aux API, ce qui peut simplifier l'utilisation et la clarté.
Dans la version de base d'Oracle Blockchain Platform, une adresse d'API nécessite des paramètres tels que le nom de code chaîne, les valeurs d'expiration et de synchronisation, les arguments (y compris le nom de la méthode), le nom de canal et l'URL d'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 de wrapper pour créer une adresse pour chaque méthode, que vous appelez ensuite en utilisant uniquement les paramètres de méthode. Au lieu d'une adresse commune, soit une transaction, soit une requête, vous pouvez avoir un nom d'adresse personnalisé pour chaque méthode. Alors que les adresses d'API dans Oracle Blockchain Platform utilisent des demandes POST, les API de wrapper prennent en charge les demandes POST et GET. Vous pouvez également ajouter une couche supplémentaire d'authentification avec des API de wrapper à l'aide du mécanisme d'authentification API Gateway.
L'exemple suivant montre l'API de méthode createAccount dans Oracle Blockchain Platform.
Adresse : 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 vous configurez des API de wrapper, vous pouvez appeler la même méthode comme indiqué dans l'exemple suivant.
Adresse : https://apigateway.example.com/appbuilder/createAccount
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
}