Verwenden von gRPC in Browser-Apps
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 mindestens .NET 7.
Zusätzliche Ressourcen
Feedback
Feedback senden und anzeigen für