ラッパーAPI

ブロックチェーン・アプリケーション・ビルダーの拡張バージョンでは、各チェーンコード・メソッドの専用エンドポイントをサポートするAPIゲートウェイのラッパーAPIを生成できます。ブロックチェーン・アプリケーション・ビルダーの拡張バージョンは、Oracle Blockchain Platform Digital Assets Editionにバンドルされています。

ラッパーAPIは、Oracle Blockchain Platformエンドポイントに対する抽象化レイヤーです。Wrapper APIは、一般的なパラメータとAPI固有のエンドポイント名の構成をサポートしているため、使いやすさと明確さを簡素化できます。

Oracle Blockchain Platformのベース・バージョンでは、APIエンドポイントに、チェーンコード名、タイムアウト値および同期値、引数(メソッド名を含む)、チャネル名、インスタンスURLなどのパラメータが必要です。これらのパラメータは、起動するたびに渡す必要があります。これらのパラメータのほとんどはすべてのメソッドに共通であるため、ラッパーAPI機能を使用して各メソッドのエンドポイントを作成し、そのエンドポイントをメソッド・パラメータのみを使用してコールできます。共通エンドポイント(トランザクションまたは問合せ)のかわりに、メソッドごとにカスタム・エンドポイント名を指定できます。Oracle Blockchain PlatformのAPIエンドポイントはPOSTリクエストを使用しますが、ラッパーAPIはPOSTリクエストとGETリクエストの両方をサポートしています。APIゲートウェイ認証メカニズムを使用して、ラッパーAPIによる認証の追加レイヤーを追加することもできます。

次の例は、Oracle Blockchain PlatformのcreateAccountメソッドAPIを示しています。

エンドポイント: 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}}
}

ラッパーAPIを構成する場合は、次の例に示すように、同じメソッド・コールを実行できます。

エンドポイント: 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}",
}