Skip to content

feat(openrpc): Добавил servers в method_spec#90

Open
maintainer64 wants to merge 1 commit into
smagafurov:masterfrom
maintainer64:feat/add_servers_into_method_v3
Open

feat(openrpc): Добавил servers в method_spec#90
maintainer64 wants to merge 1 commit into
smagafurov:masterfrom
maintainer64:feat/add_servers_into_method_v3

Conversation

@maintainer64
Copy link
Copy Markdown

@maintainer64 maintainer64 force-pushed the feat/add_servers_into_method_v3 branch 2 times, most recently from df42c21 to d3776cc Compare February 3, 2026 06:59
@maintainer64 maintainer64 force-pushed the feat/add_servers_into_method_v3 branch from d3776cc to b98393d Compare February 3, 2026 08:09
@spumer
Copy link
Copy Markdown
Collaborator

spumer commented Apr 16, 2026

Привет! Спасибо за PR.

Не могу понять практическую ценность добавления servers на уровне каждого метода. В JSON-RPC все методы одного entrypoint'а и так идут на один URL, а на верхнем уровне OpenRPC-схемы servers уже присутствует.

Можешь описать конкретный сценарий, где это нужно? Какой клиент или инструмент это потребляет, и что не работает без этого поля?

@maintainer64
Copy link
Copy Markdown
Author

maintainer64 commented Apr 17, 2026

По RFC внутри метода https://spec.open-rpc.org/#method-object может быть server, по умолчанию он берёт localhost или текущий выбранный сервер.

Для автоматических генераторов моделей (в том числе для UI) важно знать название сервера конкретного метода с указанием базового path. Поскольку библиотека позволяет зарегестрировать несколько APIPath с /api/v1, /api/v2, то по схеме по названию метода никак нельзя догататься, к какому именно path относится метод. Для этого и существует объект servers с указанием точного entrypoint для работы метода.

В примере репозитория лежит схема работы с одним bind_entrypoint. Но чаще всего в проектах используется версионирование и разные entrypoint. При этом схема openrpc генерируется одна

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants