最終更新:
編集

リクエストのフォーマット

リクエストの例

{
  "id": 2,
  "command": "account_info",
  "account": "r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59",
  "strict": true,
  "ledger_index": "validated",
  "api_version": 1
}

WebSocketフォーマット

rippledサーバへのWebSocketを開いた後、以下のフィールドを使用して、コマンドをJSONオブジェクトとして送信できます。

フィールド説明
command文字列APIメソッドの名前。
id(多種)(省略可) リクエストを識別するための一意な値。このリクエストに対するレスポンスも同じ id フィールドを使用します。これにより、レスポンスが順番通りに返ってこない場合でも、どのリクエストがどのレスポンスを返したのかを知ることができます。
api_version数値(省略可) 使用するAPIのバージョン。省略時はバージョン1を使用します。詳細については、APIのバージョン管理をご覧ください。
(メソッドのパラメータ)(多種)トップレベルのメソッドに任意のパラメータを指定します。

サーバからのレスポンスについてはレスポンスのフォーマットをご覧ください。

JSON-RPCフォーマット

JSON-RPCリクエストを実行するには、rippledサーバがJSON-RPC接続をリッスンしているポートおよびIPで、HTTP POSTリクエストをルートパス(/)に送信します。HTTP/1.0またはHTTP/1.1を使用できます。HTTPSを使用する場合は、TLS v1.2を使用してください。セキュリティ上の理由から、rippledではSSL v3以前を サポートしていません

Content-Typeヘッダ(値application/json)を常に指定してください。

複数のリクエストを実行する場合は、リクエスト間で再接続を行わずに済むように、Keep-Alivesを使用してください。

以下のフィールドを指定したリクエストボディをJSONオブジェクトとして送信します。

フィールド説明
method文字列APIメソッドの名前。
params配列(省略可) このメソッドのパラメータを持つネストされたJSONオブジェクトを含む一要素の配列。メソッドがパラメータを必要としない場合は、このフィールドを省略できます。

params配列内のオブジェクトには以下のフィールドを含めることができます。

フィールド説明
api_version数値(省略可) 使用するAPIのバージョン。省略時はバージョン1を使用します。詳細については、APIのバージョン管理をご覧ください。
(Method Parameters)(多種)メソッドで利用する任意のパラメータ。

サーバからのレスポンスについてはレスポンスのフォーマットをご覧ください。

コマンドライン形式

APIのメソッド名は、通常の(ダッシュで始まる)コマンドラインオプションの後に、スペースで区切られた一部のパラメータを続けて指定します。スペースやその他の特殊文字を含む可能性のあるパラメータ値については、シングルクォートで囲んでください。すべてのメソッドがコマンドラインAPI構文を持っているわけではありません。詳しくは、コマンドラインの使い方をご覧ください。

コマンドラインはJSON-RPCを呼び出すため、そのレスポンスは常にJSON-RPCのレスポンスのフォーマットと一致します。

コマンドラインは常に最新のAPIバージョンを使用します。

注意: コマンドラインインターフェイスは管理目的でのみ使用することを意図しており、_サポートされているAPIではありません_です。新しいバージョンのrippledでは、警告なしにコマンドラインAPIに破壊的な変更が導入される可能性があります!

APIのバージョン管理

rippledサーバは、使用するAPIバージョンを識別するために単一の整数を使用します。現在、12新規: rippled 2.0.0の2つのAPIバージョンがあります。サーバはversionAPIメソッドでサポートされるAPIバージョンの範囲を報告します。

それぞれのAPIバージョンは、破壊的な変更が導入されるときに新しいAPIバージョン番号を導入します。プレリリースやベータ、開発バージョンでは、同じAPIバージョン番号で破壊的な変更を導入することがあり、account_txリクエストを使用してAPIバージョン2を使用し、同じ接続でAPIバージョン1を使用して別のaccount_txリクエストを行うことができます。

将来のrippledのバージョンで破壊的な変更が導入されると、新しいAPIバージョン3が導入されます。

破壊的変更

次の種類の変更は破壊的変更です。

  • リクエストやレスポンスのフィールドの削除や名前の変更
  • リクエストやレスポンスのフィールドの型の変更
  • リクエストやレスポンスのフィールドの意味の変更
  • リクエストやレスポンスのフィールドの位置の変更、または他のリクエストやレスポンスのフィールドの前への新しいフィールドの追加
  • APIメソッドの削除や名前の変更
  • 既存のクライアントから確認できるAPI関数の動作の変更
  • 次の種類の変更は、gRPC APIにのみ適用されます。
    • protoフィールド番号の変更
    • 列挙型または列挙型値の削除または名前の変更
    • oneofからのフィールドの追加または削除
    • oneofの分割または統合
    • メッセージフィールドがoptionalrepeated、またはrequiredであるかの変更
    • リクエストまたはレスポンスのストリーム値の変更
    • パッケージまたはサービスの削除または名前の変更

フルリリースで破壊的変更が加えられると、新しいAPIバージョン番号が導入されます。プレリリース版、ベータ版、開発版では、同じAPIバージョン番号に変更を加えることがあります。

非破壊的変更

次の種類の変更は非破壊的変更であり、APIバージョン番号の変更なしに発生する可能性があります。

  • パラメータの位置の変更を含まない、新しいフィールドの追加
  • 新しいAPIメソッドの追加