Tovább a tartalomhoz

gRPC

Jobb kattintás a projektfában ▸ Hozzáadás ▸ gRPC-kérés.

gRPC-lap: a kiszolgáló címe, a „Unáris” hívástípus, a feloldott szolgáltatás/metódus útvonal, a kérésüzenet JSON formában és a metaadatok

MezőSzerepe
URLA kiszolgáló host:port címe
Szolgáltatás / MetódusA hívott szolgáltatás és RPC
Hívás típusaunary, server-stream, client-stream, bidirectional-stream
KérésüzenetAz üzenet, JSON formában
MetaadatokA hívással együtt továbbított kulcs/érték párok (a hitelesítő adatok is itt utaznak)

Honnan származik a szolgáltatás definíciója

Section titled “Honnan származik a szolgáltatás definíciója”

Három lehetséges forrás, prioritási sorrendben:

  1. a kiszolgálóoldali reflexióval megszerzett descriptor-készlet — ezt hozza létre a reflexión alapuló importálás, és minden mással szemben elsőbbséget élvez;
  2. a projektben tárolt beágyazott .proto tartalom;
  3. a lemezen lévő .proto fájl elérési útja.

Az első lehetőségnek fontos gyakorlati következménye van: a reflexióval importált kérés offline is működik tovább, anélkül hogy a kiszolgálónak elérhetőnek kellene lennie.

A gRPC-importálás párbeszédpanelén elég megadni a host:port címet: a Restorm lekérdezi a reflexiós szolgáltatást, betölti a descriptorokat, és felépíti a projektfát — szolgáltatásonként egy mappa, RPC-nként egy kérés, példaüzenettel.

Az ugyanahhoz a címhez történő újbóli kapcsolódást a Restorm újraszinkronizálásként ismeri fel, és a meglévő fát frissíti ahelyett, hogy megkettőzné.

Ha a kiszolgáló nem valósítja meg a reflexiót, a Restorm ezt kifejezetten jelzi: ilyenkor a .proto fájlt kell importálni. Lásd: gRPC .proto importálása.

Három szállítási mód áll rendelkezésre:

Szállítási módMikor érdemes használni
grpc (alapértelmezett)Natív gRPC HTTP/2 felett
grpc-webgRPC-Web proxy mögötti kiszolgáló
connectConnect-RPC kiszolgáló

Mindhárom folyam alapú módban a válaszpanel beérkezésük sorrendjében mutatja az üzeneteket. Egy forgatókönyvben a gRPC-kapcsolat, gRPC-küldés és gRPC-zárás műveletek használhatók: a kapcsolat a blokkok között nyitva marad, minden beérkezett üzenet eseményt bocsát ki, a zárás pedig elvégzi az ügyféloldali félbezárást.

A Restorm szimulációs gRPC-kiszolgálót is képes üzemeltetni: a szimulált metódusok listáját kell megadni, mindegyiknél a válaszüzenettel (folyam esetén JSON-tömbbel), az állapotkóddal, a záró metaadatokkal vagy egy szkripttel. A kiszolgálóoldali reflexió alapértelmezés szerint közzé van téve, a TLS pedig PEM formátumú tanúsítvánnyal és kulccsal állítható be. Lásd: gRPC-szolgáltatás szimulálása.

Tizennégy cél: grpcurl, grpc_cli, grpcurl gRPC-Web módban, curl Connect-RPC módban, JavaScript és TypeScript (@grpc/grpc-js), Python (grpcio), Go, Java (grpc-java), C# (Grpc.Net.Client), Ruby, Rust (tonic), Kotlin (grpc-kotlin), Swift (grpc-swift).