Class: A2A::Faraday::Middleware::JsonRpc::Request

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/a2a/faraday/middleware/json_rpc/request.rb

Overview

Faraday request middleware that wraps the request body in a JSON-RPC 2.0 envelope.

Reads env.request.context to determine the JSON-RPC method name. If no operation is set, passes through.

Instance Method Summary collapse

Instance Method Details

#on_request(env) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/a2a/faraday/middleware/json_rpc/request.rb', line 18

def on_request(env)
  operation = env.request.context&.dig(:a2a_operation)
  return unless operation

  env.url.path = "/a2a"
  env.method = :post

  env.body = {
    jsonrpc: "2.0",
    id:      next_id,
    method:  operation.json_rpc_method,
    params:  env.body || {},
  }
end