Спецификация схемы JSON-RPC?

Я думаю о том, чтобы попытаться реализовать клиента для конкретной службы json-rpc 2.0, которая могла бы дать пользователю некоторые гарантии статической типизации. Рассматриваемый API очень большой, поэтому написание вручную полнофункционального клиента со всей необходимой информацией о типах - слишком сложная задача, чтобы меня беспокоить. Однако я обнаружил через недокументированную конечную точку http большую схему на основе json, которая, кажется, полностью описывает всю службу json-rpc. Я уверен, что смог бы написать какой-нибудь генератор кода, используя эту спецификацию. Оно слишком велико, чтобы вставлять его сюда.

У меня вопрос: есть ли стандартная спецификация для описания службы json-rpc? Я поискал и нашел много мертвых ссылок, а в официальной спецификации [1] для json-rpc не упоминается стандартное определение схемы для такой службы. Схема, которую я нашел, похоже, по крайней мере частично, основана на спецификации json-schema [2].

json-rpc

Схема Json

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
6
0
1 814
1

Ответы 1

Схема JSON отлично подходит для определения форматов полезной нагрузки (вы даже можете использовать ее для REST API в OpenAPI), но на самом деле она не поможет описать часть «RPC» с методами и точками входа.

OpenRPC, созданный в начало 2019, кажется наиболее перспективным.

The Ethereum Classic Labs Core (ECLC) team recently created the OpenRPC Specification, aiming to improve all blockchain dapp development. The specification emulates OpenAPI, the successful and widely adopted specification for REST APIs.

The OpenRPC Specification defines a standard, programming language-agnostic interface description for JSON-RPC 2.0 APIs.

Другие подходы

Модуль Drupal JSON-RPC предоставляет конечную точку обнаружения и коллекцию Postman

The available RPC services along with documentation and usage details can be discovered by sending an HTTP GET request to /jsonrpc/methods.

You can use this Postman Collection with examples and tests.

Также могут быть интересные вещи, которые можно получить от AsyncAPI, gRPC, GraphQL.

мертв

Также цитирую некоторые другие варианты, на которые я наткнулся, но которые мертвы:

JSON-WSP кажется устаревшим, страница Википедии ожидает удаления (на странице обсуждения, похоже, говорится, что это никогда не было стандартом)

JSON-WSP (JavaScript Object Notation Web-Service Protocol) is a web-service protocol that uses JSON for service description, requests and responses. It is inspired from JSON-RPC, but the lack of a service description specification with documentation in JSON-RPC sparked the design of JSON-WSP.

Дескриптор службы схемы JSON вроде так и остался черновиком

A JSON Schema service descriptor is simply a JSON Schema with the additional definition for methods.

Другие вопросы по теме