Przejdź do głównej zawartości

gRPC

Kliknięcie prawym przyciskiem w drzewie ▸ Dodaj ▸ Żądanie gRPC.

Zakładka gRPC: adres serwera, typ wywołania „Unary”, rozwiązana ścieżka usługa/metoda, komunikat żądania w formacie JSON oraz metadane

PoleRola
URLhost:port serwera
Usługa / MetodaUsługa i wywoływana metoda RPC
Typ wywołaniaunary, server-stream, client-stream, bidirectional-stream
Komunikat żądaniaKomunikat w formacie JSON
MetadanePary klucz / wartość przesyłane wraz z wywołaniem (tędy przechodzą dane uwierzytelniające)

Możliwe są trzy źródła, w kolejności pierwszeństwa:

  1. zestaw deskryptorów uzyskany przez refleksję serwera — to właśnie zapisuje import przez refleksję i ma on pierwszeństwo nad pozostałymi źródłami;
  2. treść .proto osadzona w projekcie;
  3. ścieżka do pliku .proto na dysku.

Pierwsza opcja ma ważną konsekwencję praktyczną: żądanie zaimportowane przez refleksję działa nadal w trybie offline, bez konieczności łączenia się z serwerem.

W oknie dialogowym importu gRPC wystarczy podać host:port: Restorm odpytuje usługę refleksji, pobiera deskryptory i buduje drzewo — jeden folder na usługę, jedno żądanie na metodę RPC, z przykładowym komunikatem.

Ponowne połączenie z tym samym adresem jest rozpoznawane jako ponowna synchronizacja i aktualizuje istniejące drzewo, zamiast je duplikować.

Jeśli serwer nie implementuje refleksji, Restorm wyraźnie o tym informuje — wówczas należy zaimportować plik .proto. Zob. Import pliku .proto gRPC.

Dostępne są trzy transporty:

TransportKiedy go używać
grpc (domyślny)Natywny gRPC na HTTP/2
grpc-webSerwer za proxy gRPC-Web
connectSerwer Connect-RPC

We wszystkich trzech trybach strumieniowych panel odpowiedzi wyświetla komunikaty na bieżąco. W scenariuszu służą do tego akcje Połączenie gRPC, Wysyłanie gRPC i Zamknięcie połączenia gRPC: połączenie pozostaje otwarte pomiędzy węzłami, każdy odebrany komunikat emituje zdarzenie, a zamknięcie wykonuje półzamknięcie po stronie klienta.

Restorm potrafi hostować symulowany serwer gRPC: lista symulowanych metod, każda z własnym komunikatem odpowiedzi (tablica JSON w przypadku strumienia), kodem statusu, metadanymi końcowymi albo skryptem. Refleksja serwera jest udostępniana domyślnie, a TLS można skonfigurować, podając certyfikat i klucz w formacie PEM. Zob. Symulowanie usługi gRPC.

Czternaście celów: grpcurl, grpc_cli, grpcurl w wersji gRPC-Web, curl w wersji Connect-RPC, JavaScript i TypeScript (@grpc/grpc-js), Python (grpcio), Go, Java (grpc-java), C# (Grpc.Net.Client), Ruby, Rust (tonic), Kotlin (grpc-kotlin), Swift (grpc-swift).