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