Class: JSONRPC::Request

Inherits:
Dry::Struct
  • Object
show all
Defined in:
lib/jsonrpc/request.rb,
sig/jsonrpc/request.rbs

Overview

A JSON-RPC 2.0 Request object

Represents a call to a specific method with optional parameters and an identifier.

Examples:

Create a request with positional parameters

request = JSONRPC::Request.new(method: "subtract", params: [42, 23], id: 1)

Create a request with named parameters

request = JSONRPC::Request.new(method: "subtract", params: { minuend: 42, subtrahend: 23 }, id: 3)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeRequest

Returns a new instance of Request.

Parameters:

  • method: (String)
  • params: (params_type)
  • id: (id_type)


8
# File 'sig/jsonrpc/request.rbs', line 8

def initialize: (method: String, ?params: params_type, id: id_type) -> void

Instance Attribute Details

#idString, ... (readonly)

The request identifier

Examples:

request.id # => 1

Returns:

  • (String, Integer, nil)


59
# File 'lib/jsonrpc/request.rb', line 59

attribute? :id, Types::String | Types::Integer | Types::Nil

#jsonrpcString (readonly)

JSON-RPC protocol version

Examples:

request.jsonrpc # => "2.0"

Returns:

  • (String)


26
# File 'lib/jsonrpc/request.rb', line 26

attribute :jsonrpc, Types::String.default('2.0')

#methodString (readonly)

The method name to invoke

Examples:

request.method # => "subtract"

Returns:

  • (String)


37
# File 'lib/jsonrpc/request.rb', line 37

attribute :method, Types::String.constrained(format: /\A(?!rpc\.)/)

#paramsHash, ... (readonly)

Parameters to pass to the method

Examples:

request.params # => { "minuend": 42, "subtrahend": 23 }

Returns:

  • (Hash, Array, nil)


48
# File 'lib/jsonrpc/request.rb', line 48

attribute? :params, (Types::Hash | Types::Array).optional

Instance Method Details

#to_hHash

Converts the request to a JSON-compatible Hash

Examples:

request.to_h
# => { jsonrpc: "2.0", method: "subtract", params: [42, 23], id: 1 }

Returns:

  • (Hash)

    the request as a JSON-compatible Hash



71
72
73
74
75
76
77
78
79
80
# File 'lib/jsonrpc/request.rb', line 71

def to_h
  hash = {
    jsonrpc: jsonrpc,
    method: method,
    id: id
  }

  hash[:params] = params unless params.nil?
  hash
end

#to_jsonString

Converts the request to a JSON string

Examples:

request.to_json
# => '{"jsonrpc":"2.0","method":"subtract","params":[42,23],"id":1}'

Parameters:

  • (Object)

Returns:

  • (String)

    the request as a JSON string



92
93
94
# File 'lib/jsonrpc/request.rb', line 92

def to_json(*)
  MultiJson.dump(to_h, *)
end

#validate_idvoid

This method returns an undefined value.

Parameters:

  • (id_type)


16
# File 'sig/jsonrpc/request.rbs', line 16

def validate_id: (id_type) -> void

#validate_methodvoid

This method returns an undefined value.

Parameters:

  • (String)


14
# File 'sig/jsonrpc/request.rbs', line 14

def validate_method: (String) -> void

#validate_paramsvoid

This method returns an undefined value.

Parameters:

  • (params_type)


15
# File 'sig/jsonrpc/request.rbs', line 15

def validate_params: (params_type) -> void