Online Tool Store Online Tool Store

Конструктор gRPC-запросов

Вставьте .proto файл, выберите сервис и метод — получите корректную команду grpcurl с учётом пакета, TLS, таймаутов и поддержкой PowerShell.

🔒 Этот инструмент работает полностью в вашем браузере. Ваши файлы никогда не загружаются на сервер.

Браузерный инструмент

Конструктор gRPC-запросов

Ограничение браузера: браузеры не умеют открывать сырое gRPC-соединение (на основе трейлеров HTTP/2), поэтому этот инструмент не может вызвать ваш сервер напрямую. Вместо этого он строит корректную, готовую к запуску команду grpcurl на основе вашего адреса, proto и запроса — скопируйте её в терминал, чтобы реально отправить вызов.

Тип RPC

Метаданные (заголовки)

Дополнительные параметры (TLS-сертификаты, таймауты, размер сообщения, формат вывода)

Как это работает

  1. Вставьте ваш .proto файл — инструмент разбирает его локально, чтобы найти сервисы, методы и определить, унарный они или потоковый.
  2. Выберите сервис и метод из выпадающих списков, либо введите полностью квалифицированный символ вручную, если разбор ничего не нашёл.
  3. Заполните тело запроса в формате JSON и добавьте нужные заголовки метаданных (например, токен авторизации).
  4. Выберите тип соединения — без шифрования, TLS без проверки сертификата или TLS с проверкой — и источник схемы: локальный .proto файл (рефлексия не нужна) или рефлексия сервера.
  5. Откройте «Дополнительные параметры», если нужны сертификаты для взаимного TLS, таймаут подключения/максимального времени, максимальный размер сообщения или вывод в текстовом формате protobuf вместо JSON.
  6. Выберите оболочку, в которой будете запускать команду — macOS/Linux, PowerShell или cmd.exe, — чтобы экранирование символов точно соответствовало этой оболочке.
  7. Скопируйте или скачайте сгенерированную команду grpcurl (или скрипт) и запустите её в терминале, чтобы реально отправить запрос.

FAQ

Чем помогает этот инструмент?

Он разбирает .proto файл, находит ваши сервисы и методы, позволяет собрать тело запроса, метаданные, настройки TLS и таймаутов, а затем генерирует корректную команду grpcurl с учётом пакета, которую можно сразу запустить для вызова.

Почему нельзя вызвать мой gRPC-сервер напрямую?

Браузеры не умеют открывать сырое gRPC-соединение — gRPC опирается на трейлеры и фрейминг HTTP/2, которые понимает только нативный клиент (или прокси gRPC-Web). Генерация точной команды grpcurl — честный и правильный способ дать вам рабочий вызов из браузерного инструмента.

Отправляет ли он мой proto или данные куда-либо?

Нет. Разбор, сборка запроса и генерация команды выполняются целиком локально в вашем браузере — ничего не загружается на сервер.

Что если мой proto не удаётся разобрать?

Парсер работает с одним самодостаточным .proto файлом (без импортов из других файлов). Если определений сервисов не найдено, инструмент переключается в ручной режим, где вы сами вводите полностью квалифицированный символ Service/Method.

Что такое grpcurl и нужно ли устанавливать его отдельно?

grpcurl — это настоящая консольная утилита, аналог curl, но для gRPC. Эта страница только генерирует команду; чтобы реально выполнить вызов к вашему серверу, grpcurl нужно установить отдельно (например, через brew или go install).

Нужна ли рефлексия сервера на моём gRPC-сервере, чтобы пользоваться этим инструментом?

Нет, по умолчанию не нужна. При выбранном источнике схемы «Локальный .proto файл» сгенерированная команда передаёт ваш proto в grpcurl через -proto и -import-path, поэтому рефлексия сервера не требуется. Если ваш сервер поддерживает рефлексию и вы хотите пропустить шаг с файлом, переключите источник схемы на «Рефлексия сервера» — тогда команда будет использовать -use-reflection.

Поддерживает ли инструмент взаимный TLS (клиентские сертификаты)?

Да. Откройте «Дополнительные параметры», чтобы задать путь к CA-сертификату, клиентскому сертификату и ключу клиента — инструмент добавляет -cacert, -cert или -key только тогда, когда это применимо к выбранному типу соединения (например, -cacert не добавляется при -insecure, так как grpcurl его в этом случае игнорирует).

Можно ли задать таймаут или дедлайн соединения?

Да — в «Дополнительных параметрах» есть поля для таймаута подключения (-connect-timeout) и максимального общего времени вызова (-max-time), а также максимального размера ответа (-max-msg-sz), все они необязательны.

Работает ли сгенерированная команда в Windows?

Да. Используйте переключатель «Синтаксис команды для», чтобы выбрать между экранированием оболочки macOS/Linux, PowerShell и cmd.exe — каждый вариант использует реальные правила экранирования этой оболочки, а скачиваемый скрипт соответствует выбору (.sh, .ps1 или .bat).

Сравнение

ВозможностьOnline Tool StoreEaseCloud gRPC ClientNewtum API Navigator gRPC Client
Генерирует корректный символ grpcurl с указанием пакета (package.Service/Method) ДаНет — префикс пакета опускаетсяН/Д — вместо этого сразу выполняет вызов
Автоматически разбирает вставленный .proto для списка сервисов и методов ДаТолько ручной вводТребует рефлексию сервера
Определяет тип RPC (унарный или потоковый) по proto ДаНетПоказывается после подключения
Конструктор заголовков метаданных с безопасным для оболочки экранированием ДаНетДа
Команда действительно обходится без рефлексии при локальном proto (добавляет -proto/-import-path, а не просто заявляет об этом) ДаНет — флаг -proto не генерируется, поэтому тихо используется рефлексияН/Д — всегда работает вживую
Поддержка взаимного TLS (-cacert / -cert / -key) ДаНетНет
Флаги таймаута подключения, максимального времени и максимального размера сообщения ДаНетН/Д — настраивается прямо на живом соединении
Корректное экранирование команды для bash/zsh, PowerShell и cmd.exe ДаНет — только один стиль оболочкиН/Д — нет вывода команды
Не требует регистрации и живого сетевого вызова ДаДаНет — требует доступный сервер

Поскольку браузер не умеет напрямую говорить на gRPC, честный и полезный результат — это корректная команда: и важно, чтобы символ с пакетом, флаг -proto без рефлексии и правильное экранирование конкретной оболочки были получены верно — именно здесь наивная реализация обычно ломается.

Похожие инструменты

Встроить этот инструмент

Вставьте это на свой сайт — он останется бесплатным, и файлы по-прежнему остаются в браузере посетителя, а не у вас или у нас.