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 без рефлексії та правильне екранування конкретної оболонки були отримані вірно — саме тут наївна реалізація зазвичай ламається.

Схожі інструменти

Вбудувати цей інструмент

Вставте це на свій сайт — він залишиться безкоштовним, і кожен файл усе одно залишається в браузері відвідувача, а не у вас чи в нас.