Wrapper-APIs
Die erweiterte Version von Blockchain App Builder kann Wrapper-APIs für API Gateway generieren, die dedizierte Endpunkte für jede Chaincode-Methode unterstützen. Die erweiterte Version von Blockchain App Builder ist in Oracle Blockchain Platform Digital Assets Edition enthalten.
Eine Wrapper-API ist eine Abstraktionsschicht über einem Endpunkt. Wrapper-APIs unterstützen die Konfiguration gängiger Parameter und API-spezifischer Endpunktnamen, was die Nutzung und Klarheit vereinfachen kann.
In der Basisversion von erfordert ein API-Endpunkt Parameter, einschließlich Chaincode-Name, Timeout und Synchronisierungswerte, Argumente (einschließlich Methodenname), Kanalname und Instanz-URL. Diese Parameter müssen bei jedem Aufruf übergeben werden. Da die meisten dieser Parameter allen Methoden gemeinsam sind, können Sie mit der Wrapper-API-Funktionalität einen Endpunkt für jede Methode erstellen, den Sie dann nur mit den Methodenparametern aufrufen. Anstelle eines gemeinsamen Endpunkts, einer Transaktion oder einer Abfrage, können Sie für jede Methode einen benutzerdefinierten Endpunktnamen verwenden. Während API-Endpunkte POST-Anforderungen verwenden, unterstützen Wrapper-APIs sowohl POST- als auch GET-Anforderungen. Mit dem API Gateway-Authentifizierungsmechanismus können Sie auch eine zusätzliche Ebene der Authentifizierung mit Wrapper-APIs hinzufügen.
Das folgende Beispiel zeigt die API für die createAccount-Methode in .
Endpunkt: 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}}
}Wenn Sie Wrapper-APIs konfigurieren, können Sie denselben Methodenaufruf durchführen, wie im folgenden Beispiel gezeigt.
Endpunkt: 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}",
}