Używanie gRPC w aplikacjach przeglądarki

Autor: James Newton-King

Nie można bezpośrednio wywołać usługi gRPC z przeglądarki. Usługa gRPC używa funkcji HTTP/2, a żadna przeglądarka nie zapewnia poziomu kontroli wymaganej przez żądania internetowe do obsługi klienta gRPC.

gRPC w systemie ASP.NET Core oferuje dwa rozwiązania zgodne z przeglądarką, gRPC-Web i gRPC JSON transkodowania.

gRPC-Web

gRPC-Web umożliwia aplikacjom przeglądarki wywoływanie usług gRPC za pomocą klienta gRPC-Web i narzędzia Protobuf.

  • Podobnie jak w przypadku normalnego protokołu gRPC, ale ma nieco inny protokół przewodowy, który sprawia, że jest zgodny z protokołem HTTP/1.1 i przeglądarkami.
  • Wymaga, aby aplikacja przeglądarki wygenerowała klienta gRPC na podstawie .proto pliku.
  • Umożliwia aplikacjom przeglądarki korzystanie z wysokiej wydajności i niskiego użycia sieci komunikatów binarnych.

Platforma .NET ma wbudowaną obsługę gRPC-Web. Aby uzyskać więcej informacji, zobacz gRPC-Web in ASP.NET Core gRPC apps (Aplikacje gRPC core).

transkodowanie gRPC JSON

Transkodowanie gRPC JSON umożliwia aplikacjom przeglądarki wywoływanie usług gRPC tak, jakby były RESTto pełne interfejsy API z włączonym JS.

  • Aplikacja przeglądarki nie musi generować klienta gRPC ani nic wiedzieć o gRPC.
  • RESTInterfejsy API ful są tworzone automatycznie na podstawie usług gRPC przez dodawanie adnotacji do .proto pliku za pomocą metadanych HTTP.
  • Umożliwia aplikacji obsługę zarówno interfejsów gRPC, jak i JSON internetowych interfejsów API bez duplikowania nakładu pracy nad tworzeniem oddzielnych usług dla obu tych usług.

Platforma .NET ma wbudowaną obsługę tworzenia JSinternetowych interfejsów API ON z usług gRPC. Aby uzyskać więcej informacji, zobacz transkodowanie gRPC JSON w aplikacjach gRPC platformy ASP.NET Core.

Uwaga

Transkodowanie gRPC JSON wymaga platformy .NET 7 lub nowszej.

Dodatkowe zasoby