Конструктор gRPC-запросов
Вставьте .proto файл, выберите сервис и метод — получите корректную команду grpcurl с учётом пакета, TLS, таймаутов и поддержкой PowerShell.
🔒 Этот инструмент работает полностью в вашем браузере. Ваши файлы никогда не загружаются на сервер.
Браузерный инструмент
Конструктор gRPC-запросов
Ограничение браузера: браузеры не умеют открывать сырое gRPC-соединение (на основе трейлеров HTTP/2), поэтому этот инструмент не может вызвать ваш сервер напрямую. Вместо этого он строит корректную, готовую к запуску команду grpcurl на основе вашего адреса, proto и запроса — скопируйте её в терминал, чтобы реально отправить вызов.
—
Метаданные (заголовки)
Дополнительные параметры (TLS-сертификаты, таймауты, размер сообщения, формат вывода)
Как это работает
- Вставьте ваш .proto файл — инструмент разбирает его локально, чтобы найти сервисы, методы и определить, унарный они или потоковый.
- Выберите сервис и метод из выпадающих списков, либо введите полностью квалифицированный символ вручную, если разбор ничего не нашёл.
- Заполните тело запроса в формате JSON и добавьте нужные заголовки метаданных (например, токен авторизации).
- Выберите тип соединения — без шифрования, TLS без проверки сертификата или TLS с проверкой — и источник схемы: локальный .proto файл (рефлексия не нужна) или рефлексия сервера.
- Откройте «Дополнительные параметры», если нужны сертификаты для взаимного TLS, таймаут подключения/максимального времени, максимальный размер сообщения или вывод в текстовом формате protobuf вместо JSON.
- Выберите оболочку, в которой будете запускать команду — macOS/Linux, PowerShell или cmd.exe, — чтобы экранирование символов точно соответствовало этой оболочке.
- Скопируйте или скачайте сгенерированную команду 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 Store | EaseCloud gRPC Client | Newtum 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 без рефлексии и правильное экранирование конкретной оболочки были получены верно — именно здесь наивная реализация обычно ломается.