Używanie gRPC w aplikacjach przeglądarki
Uwaga
Nie jest to najnowsza wersja tego artykułu. Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
Ważne
Te informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany, zanim zostanie wydany komercyjnie. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Aby zapoznać się z bieżącą wersją, zobacz wersję tego artykułu platformy .NET 9.
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ą, transkodowanie gRPC-Web i gRPC JSON.
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 kodu JSON gRPC
Transkodowanie gRPC JSON umożliwia aplikacjom przeglądarki wywoływanie usług gRPC tak, jakby były to interfejsy API RESTful z formatem JSON.
- Aplikacja przeglądarki nie musi generować klienta gRPC ani nic wiedzieć o gRPC.
- Interfejsy API RESTful 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 internetowych interfejsów API gRPC, jak i JSON bez duplikowania nakładu pracy nad tworzeniem oddzielnych usług dla obu tych usług.
Platforma .NET ma wbudowaną obsługę tworzenia internetowych interfejsów API JSON 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.