在瀏覽器應用程式中使用 gRPC

作者:James Newton-King

您無法直接從瀏覽器呼叫 gRPC 服務。 gRPC 使用 HTTP/2 功能,而且沒有瀏覽器提供透過 Web 要求支援 gRPC 用戶端所需的控制層級。

ASP.NET Core 上的 gRPC 提供兩個瀏覽器相容方案:gRPC-Web 和 gRPC JSON 轉碼。

gRPC-Web

gRPC-Web 允許瀏覽器應用程式使用 gRPC-Web 用戶端和 Protobuf 來呼叫 gRPC 服務。

  • 其與一般 gRPC 類似,但有線通訊協定稍微不同,這使其與 HTTP/1.1 和瀏覽器相容。
  • 需要瀏覽器應用程式從 .proto 檔案產生 gRPC 用戶端。
  • 可讓瀏覽器應用程式受益於二進位訊息的高效能和低網路使用量。

.NET 具有 gRPC-Web 的內建支援。 如需詳細資訊,請參閱 ASP.NET Core gRPC 應用程式中的 gRPC-Web

gRPC JSON 轉碼

gRPC JSON 轉碼可讓瀏覽器應用程式呼叫 gRPC 服務,就像它們是具有 JSON 的 RESTful API 一樣。

  • 瀏覽器應用程式不需要產生 gRPC 用戶端或知道 gRPC 的任何項目。
  • 使用 HTTP 中繼資料來標註 .proto 檔案,以自動從 gRPC 服務建立 RESTful API。
  • 允許應用程式同時支援 gRPC 和 JSON Web API,而不需要複製為兩者建置個別服務的工作。

.NET 具有從 gRPC 服務建立 JSON Web API 的內建支援。 如需詳細資訊,請參閱 ASP.NET Core gRPC 應用程式中 的 gRPCJSON 轉碼

注意

gRPC JSON 轉碼需要 .NET 7 或更新版本。

其他資源