メインコンテンツへスキップ
Cosmos SDK上のすべてのgRPCサービスは、gRPC-gatewayを通じてより便利なRESTベースのクエリとして利用できます。URLパスの形式はProtobufサービスメソッドの完全修飾名に基づいていますが、最終的なURLがより慣用的に見えるようにカスタマイズされている場合があります。例えば、cosmos.bank.v1beta1.Query/AllBalancesメソッドのRESTエンドポイントはGET /cosmos/bank/v1beta1/balances/{address}です。リクエスト引数はクエリパラメータとして渡されます。 以下の例では、ローカルプライベートネットワーク内のノードとRESTエンドポイントを使用して対話することを想定しています。ドメインをパブリックネットワークに変更することもできます。 具体的な例として、残高リクエストを行うcurlコマンドは以下のとおりです:
curl \
    -X GET \
    -H "Content-Type: application/json" \
    http://localhost:1317/cosmos/bank/v1beta1/balances/$MY_VALIDATOR
localhost:1317を、api.addressフィールドで設定されたノードのRESTエンドポイントに置き換えてください。 利用可能なすべてのRESTエンドポイントの一覧はSwagger仕様ファイルとして提供されています。localhost:1317/swaggerで確認できます。app.tomlファイルのapi.swaggerフィールドがtrueに設定されていることを確認してください。

RESTを使用した過去のstateのクエリ

過去のstateのクエリは、HTTPヘッダーx-cosmos-block-heightを使用して行います。例えば、curlコマンドは以下のようになります:
curl \
    -X GET \
    -H "Content-Type: application/json" \
    -H "x-cosmos-block-height: 279256" \
    http://localhost:1317/cosmos/bank/v1beta1/balances/$MY_VALIDATOR
そのブロックのstateがノードによってまだプルーニングされていない場合、このクエリは空でないレスポンスを返します。

Cross-Origin Resource Sharing (CORS)

セキュリティのため、CORSポリシーはデフォルトで有効になっていません。rest-serverを使用する場合は、リバースプロキシの提供を推奨します。これはnginxを使用して行うことができます。テストおよび開発目的では、app.toml内にenabled-unsafe-corsフィールドがあります。

トランザクションの送信

gRPCおよびRESTを使用してトランザクションを送信するには、トランザクションの生成、署名、そしてブロードキャストという追加手順が必要です。 詳細についてはトランザクションを参照してください。