共用方式為


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

注意

這不是這篇文章的最新版本。 如需目前的版本,請參閱 本文的 .NET 9 版本。

警告

不再支援此版本的 ASP.NET Core。 如需詳細資訊,請參閱 .NET 和 .NET Core 支援原則。 如需目前版本,請參閱本文的 .NET 8 版本

重要

這些發行前產品的相關資訊在產品正式發行前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。

如需目前的版本,請參閱 本文的 .NET 9 版本。

作者: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 應用程式中 的 gRPC JSON 轉碼

注意

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

其他資源