class

Analyzer::Specification::OpenRpc

Inherits Analyzer::Specification::SpecificationEngine < Analyzer < FileHelper < Reference < Object

OpenRPC 1.x analyzer.

JSON-RPC exposes a single HTTP path and selects the operation via the "method" field in the request body, so methods[] cannot map onto distinct URLs on its own. We emit one endpoint per RPC method, disambiguated by a URL fragment:

POST /rpc#eth_getBalance

This mirrors GraphqlSdlParser's /graphql#Query.user convention. The fragment is load-bearing: the optimizer dedupes on (method, url, scope), so without it every RPC method would collapse into one merged endpoint.

Each endpoint also carries a jsonrpc_<method> body param whose value is a ready-to-send JSON-RPC 2.0 request envelope, the same way the GraphQL analyzers attach a graphql_<operation>_<field> document param.

Constants

DEFAULT_RPC_PATH = "/"

Fallback when the document declares no usable server URL. JSON-RPC has no canonical path the way GraphQL has /graphql, so stay at the root rather than inventing one.

Class methods

tech_name
Source

Instance methods

analyze
Source
tech

Instance-side view of the same declaration. The per-file rescues live on this base class, which has no way to name the analyzer that is running inside them, so a skipped file could not be attributed to a tech. Deriving it from analyzer_for keeps the name written exactly once.

Source