gRPC Client

Natywny komponent klienta gRPC dla Delphi/C++Builder. Wywołania unary i strumieniowe przez HTTP/2, niestandardowe metadane, terminy, kompresja gzip, interceptory, automatyczne ponawianie i TLS przez OpenSSL lub Windows SChannel. Użyj dowolnego kodera Protocol Buffers; komponent ramkuje i wysyła bajty Twojej wiadomości.

TsgcGRPCClient

Typowany klient gRPC działający na natywnym transporcie TsgcHTTP2Client. Wywołania unary i wszystkie trzy tryby strumieniowe, parsowanie statusu i nagłówków trailer, bez zewnętrznego środowiska gRPC ani biblioteki C.

Klasa komponentu

TsgcGRPCClient

Protokół

gRPC przez HTTP/2 (RFC 9113)

Platformy

Windows, macOS, Linux, iOS, Android

Edycja

Enterprise

Podłącz transport, wykonaj wywołanie

Upuść TsgcHTTP2Client i TsgcGRPCClient na formularz, przypisz transport, a następnie wywołaj metodę swojej usługi z bajtami żądania.

uses
  sgcHTTP2, sgcGRPC_Client, sgcGRPC_Classes, sgcGRPC_Types;

var
  HTTP2: TsgcHTTP2Client;
  GRPC: TsgcGRPCClient;
  oResponse: TsgcGRPCResponse;
begin
  // gRPC runs over an HTTP/2 transport
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.Host := 'grpc.example.com';
  HTTP2.Port := 443;
  HTTP2.TLS  := True;

  GRPC := TsgcGRPCClient.Create(nil);
  GRPC.Client := HTTP2;

  // default metadata sent on every call (auth, tracing...)
  GRPC.DefaultMetadata.Add('authorization', 'Bearer eyJ...');

  // unary call: pass your serialized protobuf message as TBytes
  oResponse := GRPC.Call('helloworld.Greeter', 'SayHello', RequestBytes);
  if oResponse.StatusCode = grpcOK then
    Memo1.Text := oResponse.DataString
  else
    ShowMessage('gRPC error: ' + oResponse.StatusMessage);
end;
// uses: sgcHTTP2, sgcGRPC_Client, sgcGRPC_Classes, sgcGRPC_Types
TsgcHTTP2Client *HTTP2 = new TsgcHTTP2Client(NULL);
HTTP2->Host = "grpc.example.com";
HTTP2->Port = 443;
HTTP2->TLS  = true;

TsgcGRPCClient *GRPC = new TsgcGRPCClient(NULL);
GRPC->Client = HTTP2;

GRPC->DefaultMetadata->Add("authorization", "Bearer eyJ...");

TsgcGRPCResponse *oResponse = GRPC->Call("helloworld.Greeter", "SayHello", RequestBytes);
if (oResponse->StatusCode == grpcOK)
  Memo1->Text = oResponse->DataString;

Co jest w środku

Kompletny klient gRPC zbudowany na silniku ramkowania sgcHTTP2. Cztery typy wywołań, strojenie kanału, metadane, terminy, interceptory i ponawianie.

Wywołania unary

Call blokuje i zwraca TsgcGRPCResponse z StatusCode, StatusMessage, Data i Trailers. CallAsync zwraca natychmiast i wyzwala OnGRPCResponse.

Strumieniowanie serwera

ServerStreamingCall wysyła jedno żądanie i odbiera strumień wiadomości. Każda wiadomość wyzwala OnGRPCStreamMessage; OnGRPCStreamEnd wyzwala się z końcowym statusem.

Strumieniowanie klienta

OpenClientStream otwiera strumień, SendStreamMessage wypycha każdą wiadomość, a CloseClientStream wykonuje half-close i odczytuje pojedynczą odpowiedź serwera.

Strumieniowanie dwukierunkowe

OpenBidiStream, SendBidiMessage i CloseBidiStream prowadzą pełnodupleksową wymianę przez jeden strumień HTTP/2, gdzie obie strony wysyłają jednocześnie.

Metadane, terminy, anulowanie

DefaultMetadata i metadane dla każdego wywołania niosą nagłówki auth i śledzenia. Limit czasu dla wywołania mapuje się na nagłówek grpc-timeout, a CancelCall przerywa trwający strumień.

Opcje kanału

ChannelOptions stroi kompresję gzip Compression, ContentType, MaxMessageSize i MaxMetadataSize dla całego kanału.

Interceptory, ponawianie, konfiguracja usługi

Łańcuch Interceptors opakowuje każde wywołanie, RetryPolicy ponawia przy konfigurowalnych kodach statusu, a ServiceConfig wraz z MetricsCollector dodaje politykę i liczniki dla każdej metody.

Zbudowany na HTTP/2 i TLS

Transportem jest TsgcHTTP2Client: ALPN h2, TLS przez OpenSSL lub SChannel oraz parsowanie nagłówków trailer grpc-status / grpc-message na typowane kody statusu.

Niezależny od protobuf, z klientami Google

Wywołania przyjmują i zwracają surowe bajty wiadomości, więc działa dowolna biblioteka Protocol Buffers. Typowane klienty Google Cloud (Pub/Sub, Speech, Translation, Vision, BigQuery, Vertex AI) są dostarczane na tej podstawie.

Specyfikacje i źródła

Autorytatywne źródła dla protokołu implementowanego przez ten komponent.

Dokumentacja i wersje demo

Deep-link do dokumentacji komponentu, gotowy do uruchomienia projekt demonstracyjny i pobranie wersji próbnej.

Online Help — TsgcGRPCClient Pełna dokumentacja właściwości, metod i zdarzeń tego komponentu.
Projekt demonstracyjny — Demos\21.GRPC\01.GRPC_Client Gotowy do uruchomienia projekt przykładowy. Dostarczany wewnątrz pakietu sgcWebSockets — pobierz wersję próbną poniżej.
Dokument techniczny (PDF) Funkcje, szybki start, przykłady kodu dla Delphi i C++ Builder oraz odniesienia do źródeł pierwotnych — tylko ten komponent.
Podręcznik użytkownika (PDF) Kompleksowy podręcznik obejmujący każdy komponent biblioteki.

Gotowy, aby wywoływać usługi gRPC z Delphi?

Pobierz bezpłatną wersję próbną i dodaj wywołania unary i strumieniowe gRPC do swoich aplikacji Delphi.