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.
Eine Wrapper-API ist eine Abstraktionsschicht über einem Oracle Blockchain Platform-Endpunkt. Wrapper-APIs unterstützen die Konfiguration allgemeiner Parameter und API-spezifischer Endpunktnamen, was die Verwendung und Übersichtlichkeit vereinfachen kann.
In der Basisversion von Oracle Blockchain Platform sind für einen API-Endpunkt Parameter wie Chaincodename, Timeout- und Synchronisierungswerte, Argumente (einschließlich Methodenname), Kanalname und Instanz-URL erforderlich. 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, die Sie dann nur mit den Methodenparametern aufrufen. Anstelle eines gemeinsamen Endpunkts, entweder einer Transaktion oder einer Abfrage, können Sie einen benutzerdefinierten Endpunktnamen für jede Methode verwenden. Während API-Endpunkte in Oracle Blockchain Platform 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 Authentifizierungsebene mit Wrapper-APIs hinzufügen.
Das folgende Beispiel zeigt die Methoden-API createAccount in Oracle Blockchain Platform.
Endpunkt: 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}}
}
Wenn Sie Wrapper-APIs konfigurieren, können Sie denselben Methodenaufruf wie im folgenden Beispiel ausführen.
Endpunkt: https://apigateway.example.com/appbuilder/createAccount
{
"orgId": "{{bc-org-id}}",
"userId": "user1",
"tokenType": "fungible",
"dailyLimits": "{\"max_daily_amount\":10000,\"max_daily_transactions\":100}",
}