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 gängiger Parameter und API-spezifischer Endpunktnamen, was die Nutzung und Klarheit vereinfachen kann.

In der Basisversion von Oracle Blockchain Platform 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 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 Ebene der Authentifizierung mit Wrapper-APIs hinzufügen.

Das folgende Beispiel zeigt die Methoden-API createAccount in Oracle Blockchain Platform.

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 dieselbe Methode aufrufen, 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}",
}