Salta ai contenuti

gRPC

Clic destro nell’albero ▸ Aggiungi ▸ Richiesta gRPC.

Una scheda gRPC: l’indirizzo del server, il tipo di chiamata «Unaria», il percorso servizio/metodo risolto, il messaggio di richiesta in JSON e i metadati

CampoRuolo
URLhost:port del server
Servizio / MetodoIl servizio e la RPC chiamata
Tipo di chiamataunary, server-stream, client-stream, bidirectional-stream
Messaggio di richiestaIl messaggio, in JSON
MetadatiLe coppie chiave / valore trasmesse con la chiamata (è qui che passano le credenziali)

Tre sorgenti possibili, in ordine di priorità:

  1. un insieme di descrittori ottenuto tramite reflection del server — è ciò che imposta l’importazione per reflection, e prevale sul resto;
  2. il contenuto .proto inline, archiviato nel progetto;
  3. un percorso verso un .proto sul disco.

La prima opzione ha una conseguenza pratica importante: una richiesta importata per reflection continua a funzionare offline, senza che il server sia raggiungibile.

Dalla finestra modale di importazione gRPC, occorre indicare host:port: Restorm interroga il servizio di reflection, carica i descrittori e costruisce l’albero — una cartella per servizio, una richiesta per RPC, con un messaggio di esempio.

Ricollegarsi allo stesso indirizzo viene riconosciuto come una risincronizzazione e aggiorna l’albero esistente invece di duplicarlo.

Se il server non implementa la reflection, Restorm lo dice esplicitamente: in tal caso occorre importare il .proto. Si veda Importare un .proto gRPC.

Sono disponibili tre trasporti:

TrasportoQuando usarlo
grpc (predefinito)gRPC nativo su HTTP/2
grpc-webServer dietro un proxy gRPC-Web
connectServer Connect-RPC

Per i tre modi in streaming, il pannello di risposta mostra i messaggi man mano. In uno scenario, si usano le azioni Connessione gRPC, Invio gRPC e Chiusura gRPC: la connessione resta aperta tra i riquadri, ogni messaggio ricevuto emette un evento e la chiusura effettua la semi-chiusura lato client.

Restorm sa ospitare un server gRPC di simulazione: un elenco di metodi simulati, ciascuno con il proprio messaggio di risposta (un array JSON per uno streaming), il proprio codice di stato, i propri metadati finali oppure uno script. La reflection del server è esposta per impostazione predefinita e TLS è configurabile con certificato e chiave in formato PEM. Si veda Simulare un’API gRPC.

Quattordici destinazioni: grpcurl, grpc_cli, grpcurl in gRPC-Web, curl in Connect-RPC, JavaScript e TypeScript (@grpc/grpc-js), Python (grpcio), Go, Java (grpc-java), C# (Grpc.Net.Client), Ruby, Rust (tonic), Kotlin (grpc-kotlin), Swift (grpc-swift).