在瀏覽器應用程式中使用 gRPC
您無法直接從瀏覽器呼叫 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 或更新版本。
其他資源
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應