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
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
Instance methods
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.