Verwenden von gRPC in Browser-Apps
Hinweis
Dies ist nicht die neueste Version dieses Artikels. Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
Warnung
Diese Version von ASP.NET Core wird nicht mehr unterstützt. Weitere Informationen finden Sie in der .NET- und .NET Core-Supportrichtlinie. Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
Wichtig
Diese Informationen beziehen sich auf ein Vorabversionsprodukt, das vor der kommerziellen Freigabe möglicherweise noch wesentlichen Änderungen unterliegt. Microsoft gibt keine Garantie, weder ausdrücklich noch impliziert, hinsichtlich der hier bereitgestellten Informationen.
Die aktuelle Version finden Sie in der .NET 9-Version dieses Artikels.
Es ist nicht möglich, einen gRPC-Dienst direkt in einem Browser aufzurufen. gRPC nutzt HTTP/2-Features, und kein Browser bietet das für die Unterstützung eines gRPC-Clients erforderliche Maß an Kontrolle über Webanforderungen.
gRPC für ASP.NET Core bietet zwei browserkompatible Lösungen: gRPC-Web und gRPC JSON-Transcodierung.
gRPC-Web
Mit gRPC-Web können Browser-Apps gRPC-Dienste mithilfe des gRPC-Web-Clients und mithilfe von Protobuf aufrufen.
- Es ist mit der normalen Variante von gRPC vergleichbar, verfügt jedoch über ein etwas anderes Wire-Protokoll, wodurch es mit HTTP/1.1 und Browsern kompatibel ist.
- Erfordert die Generierung eines gRPC-Clients auf der Grundlage einer Datei vom Typ
.proto
durch die Browser-App. - Browser-Apps können von der hohen Leistung und der geringen Netzwerkauslastung binärer Nachrichten profitieren.
.NET bietet integrierte Unterstützung für gRPC-Web. Weitere Informationen finden Sie unter gRPC-Web in ASP.NET Core gRPC-Apps.
gRPC JSON-Transcodierung
gRPC-JSON-Transcodierung ermöglicht es Browser-Apps, gRPC-Dienste so aufzurufen, als wären es RESTful-APIs mit JSON.
- Die Browser-App muss keinen gRPC-Client generieren und benötigt keine Informationen zu gRPC.
- RESTful-APIs werden automatisch auf der Grundlage von gRPC-Diensten erstellt, indem die
.proto
-Datei mit HTTP-Metadaten ergänzt wird. - Ermöglicht es einer App, sowohl gRPC- als auch JSON-Web-APIs zu unterstützen, ohne den Aufwand durch die Entwicklung separater Dienste für beides zu verdoppeln.
.NET bietet integrierte Unterstützung für das Erstellen von JSON-Web-APIs aus gRPC-Diensten. Weitere Informationen finden Sie unter gRPC JSON-Transcodierung in ASP.NET Core gRPC-Apps.
Hinweis
Die gRPC JSON-Transcodierung erfordert .NET 7 oder höher.