Kreator żądań gRPC
Wklej plik .proto, wybierz usługę i metodę, a otrzymasz poprawne, kwalifikowane pakietem polecenie grpcurl z obsługą TLS, limitu czasu i PowerShell.
🔒 To narzędzie działa w całości w Twojej przeglądarce. Twoje pliki nigdy nie są wysyłane na serwer.
Narzędzie przeglądarkowe
Kreator żądań gRPC
Ograniczenie przeglądarki: przeglądarki nie mogą otworzyć surowego połączenia gRPC (opartego na trailerach HTTP/2), więc to narzędzie nie może połączyć się bezpośrednio z Twoim serwerem. Zamiast tego buduje poprawne, gotowe do uruchomienia polecenie grpcurl na podstawie Twojego adresu, proto i żądania - skopiuj je do terminala, aby faktycznie wysłać wywołanie.
—
Metadane (nagłówki)
Opcje zaawansowane (certyfikaty TLS, limity czasu, rozmiar wiadomości, format wyjścia)
Jak to działa
- Wklej swój plik .proto - narzędzie analizuje go lokalnie, aby znaleźć usługi, metody oraz określić, czy dana metoda jest jednorazowa (unary) czy strumieniowa.
- Wybierz usługę i metodę z list rozwijanych albo wpisz ręcznie w pełni kwalifikowany symbol, jeśli parsowanie niczego nie znajdzie.
- Uzupełnij treść żądania jako JSON i dodaj ewentualne nagłówki metadanych (np. token uwierzytelniający).
- Wybierz zabezpieczenie połączenia - bez szyfrowania (plaintext), TLS z pominiętą weryfikacją lub zweryfikowane TLS - i wybierz źródło schematu: lokalny plik .proto (bez potrzeby reflection) lub reflection serwera.
- Otwórz "Opcje zaawansowane", jeśli potrzebujesz certyfikatów mutual TLS, limitu czasu połączenia/maksymalnego czasu, maksymalnego rozmiaru wiadomości lub wyjścia w formacie tekstowym protobuf zamiast JSON.
- Wybierz powłokę, w której uruchomisz polecenie - macOS/Linux, PowerShell lub cmd.exe - aby cytowanie dokładnie odpowiadało tej powłoce.
- Skopiuj lub pobierz wygenerowane polecenie grpcurl (lub skrypt) i uruchom je w terminalu, aby faktycznie wysłać żądanie.
FAQ
W czym pomaga to narzędzie?
Analizuje plik .proto, aby znaleźć Twoje usługi i metody, pozwala zbudować treść żądania, metadane, ustawienia TLS i limitu czasu, a następnie generuje poprawne, kwalifikowane pakietem polecenie grpcurl, które możesz uruchomić, aby faktycznie wykonać wywołanie.
Dlaczego nie może połączyć się bezpośrednio z moim serwerem gRPC?
Przeglądarki nie mogą otworzyć surowego połączenia gRPC - gRPC opiera się na trailerach i ramkowaniu HTTP/2, które potrafi obsłużyć tylko natywny klient (lub proxy gRPC-Web). Wygenerowanie dokładnego polecenia grpcurl to uczciwy i poprawny sposób, aby dać Ci działające wywołanie z narzędzia przeglądarkowego.
Czy wysyła mój plik proto lub dane gdziekolwiek?
Nie. Parsowanie, budowanie żądania i generowanie polecenia działają w całości lokalnie w Twojej przeglądarce - nic nie jest wysyłane.
Co jeśli mojego proto nie da się sparsować?
Parser obsługuje pojedynczy, samodzielny plik .proto (bez importów między plikami). Jeśli nie znajdzie żadnych definicji usług, narzędzie przełącza się w tryb ręczny, w którym sam wpisujesz w pełni kwalifikowany symbol Service/Method.
Czym jest grpcurl i czy muszę instalować go osobno?
grpcurl to prawdziwe narzędzie wiersza poleceń - jak curl, ale dla gRPC. Ta strona jedynie generuje polecenie; nadal musisz zainstalować grpcurl (np. przez brew lub go install), aby faktycznie uruchomić je względem swojego serwera.
Czy do korzystania z tego narzędzia potrzebuję reflection włączonego na moim serwerze gRPC?
Domyślnie nie. Gdy jako źródło schematu wybrano "Lokalny plik .proto", wygenerowane polecenie przekazuje Twój plik proto do grpcurl przez -proto i -import-path, więc nigdy nie zależy od reflection serwera. Jeśli Twój serwer udostępnia reflection i wolisz pominąć krok z plikiem, przełącz źródło schematu na "Reflection serwera", a polecenie użyje wtedy -use-reflection.
Czy obsługuje mutual TLS (certyfikaty klienta)?
Tak. Otwórz "Opcje zaawansowane", aby ustawić certyfikat CA, certyfikat klienta i ścieżkę do pliku klucza klienta - narzędzie dodaje -cacert, -cert lub -key tylko wtedy, gdy mają zastosowanie do wybranego zabezpieczenia połączenia (na przykład -cacert jest pomijany dla połączeń -insecure, ponieważ grpcurl i tak go tam ignoruje).
Czy mogę ustawić limit czasu lub termin połączenia?
Tak - "Opcje zaawansowane" zawierają pola dla limitu czasu połączenia (-connect-timeout) i maksymalnego łącznego czasu wywołania (-max-time), a także maksymalnego rozmiaru wiadomości odpowiedzi (-max-msg-sz) - wszystkie opcjonalne.
Czy wygenerowane polecenie działa w Windows?
Tak. Użyj selektora "Składnia polecenia dla", aby przełączać się między cytowaniem powłoki macOS/Linux, PowerShell i cmd.exe - każda opcja używa faktycznych reguł escapowania danej powłoki, a pobierany skrypt jest z nią zgodny (.sh, .ps1 lub .bat).
Jak wypadamy na tle konkurencji
| Funkcja | Online Tool Store | EaseCloud gRPC Client | Newtum API Navigator gRPC Client |
|---|---|---|---|
| Generuje poprawny, kwalifikowany pakietem symbol grpcurl (package.Service/Method) | Tak | Nie - pomija prefiks pakietu | Nie dotyczy - zamiast tego wysyła na żywo |
| Automatycznie parsuje wklejony plik .proto, aby wypisać usługi i metody | Tak | Tylko wpis ręczny | Wymaga reflection serwera |
| Wykrywa typ RPC (unary czy strumieniowy) na podstawie proto | Tak | Nie | Pokazywane po połączeniu |
| Kreator nagłówków metadanych z bezpiecznym dla powłoki escapowaniem | Tak | Nie | Tak |
| Polecenie faktycznie pomija reflection przy użyciu lokalnego proto (dodaje -proto/-import-path, a nie tylko deklaruje) | Tak | Nie - nie generuje flagi -proto, więc po cichu wraca do reflection | Nie dotyczy - zawsze na żywo |
| Obsługa mutual TLS (-cacert / -cert / -key) | Tak | Nie | Nie |
| Flagi limitu czasu połączenia, maksymalnego czasu i maksymalnego rozmiaru wiadomości | Tak | Nie | Nie dotyczy - konfigurowane zamiast tego na żywym połączeniu |
| Poprawne cytowanie poleceń dla bash/zsh, PowerShell i cmd.exe | Tak | Nie - tylko jeden styl powłoki | Nie dotyczy - brak wygenerowanego polecenia |
| Bez rejestracji, bez wymaganego połączenia sieciowego na żywo | Tak | Tak | Nie - wymaga osiągalnego serwera |
Ponieważ przeglądarka nie potrafi mówić surowym gRPC, uczciwym i użytecznym wynikiem jest poprawne polecenie - a uzyskanie kwalifikowanego pakietem symbolu, bezreflectionowej flagi -proto oraz właściwych reguł cytowania danej powłoki to dokładnie miejsce, w którym naiwna implementacja się psuje.