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 des 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 des paramètres communs et des 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 requiert des paramètres tels que le nom de code chaîne, les valeurs de délai d'expiration et de synchronisation, les arguments (y compris le nom de méthode), le nom de canal et l'URL d'instance. Ces paramètres doivent être transmis à chaque appel. La plupart de ces paramètres étant 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 la méthode. Au lieu d'une adresse commune (transaction ou 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 les API de wrapper à l'aide du mécanisme d'authentification API Gateway.
L'exemple suivant présente l'API de méthode createAccount dans Oracle Blockchain Platform.
Adresse : 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 de wrapper, vous pouvez effectuer le même appel de méthode que dans l'exemple suivant.
Adresse : 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}",
}