JSONRPC2. Spec. Request
(jsonrpc2_spec v0.2.0)
Copy Markdown
Struct which represents JSONRPC request.
Summary
Functions
Instantiate a request struct
Build a request struct from input data
Validate a request struct
Types
@type t() :: %JSONRPC2.Spec.Request{ id: JSONRPC2.Spec.id(), jsonrpc: String.t(), method: JSONRPC2.Spec.method(), params: JSONRPC2.Spec.params() }
Functions
@spec new(JSONRPC2.Spec.method(), JSONRPC2.Spec.params(), JSONRPC2.Spec.id()) :: t()
Instantiate a request struct
Build a request struct from input data
Example:
iex> Request.parse(%{"id" => 123, "method" => "add", "params" => %{"x" => 15, "y" => 51}, "jsonrpc" => "2.0"})
{:ok, %Request{id: 123, method: "add", params: %{"x" => 15, "y" => 51}, jsonrpc: "2.0"}}
iex> Request.parse(%{"id" => nil, "method" => "add", "params" => %{"x" => 15, "y" => 51}, "jsonrpc" => "2.0"})
{:ok, %Request{id: nil, method: "add", params: %{"x" => 15, "y" => 51}, jsonrpc: "2.0"}}
iex> Request.parse(%{"id" => 123, "method" => "add", "params" => %{"x" => 15, "y" => 51}})
{:invalid, 123}
iex> Request.parse(%{"method" => "add", "params" => %{"x" => 15, "y" => 51}, "jsonrpc" => "2.0"})
{:invalid, nil}
@spec valid?(t()) :: :ok | :invalid
Validate a request struct