Utiliser gRPC dans les applications de navigateur

Par James Newton-King

Il n’est pas possible d’appeler directement un service gRPC à partir d’un navigateur. gRPC utilise les fonctionnalités HTTP/2 et aucun navigateur ne fournit le niveau de contrôle requis sur les requêtes Web pour prendre en charge un client gRPC.

gRPC sur ASP.NET Core offre deux solutions compatibles avec les navigateurs, le transcodage gRPC-Web et gRPC JSON.

gRPC-Web

gRPC-Web permet aux applications de navigateur d’appeler des services gRPC avec le client gRPC-Web et Protobuf.

  • Semblable à gRPC normal, mais avec un protocole filaire légèrement différent, ce qui le rend compatible avec HTTP/1.1 et les navigateurs.
  • Nécessite que l’application de navigateur génère un client gRPC à partir d’un fichier .proto.
  • Permet aux applications de navigateur de tirer parti d’une utilisation réseau faible et à hautes performances des messages binaires.

.NET intègre la prise en charge de gRPC-Web. Pour plus d’informations, consultez gRPC-Web dans les applications ASP.NET Core gRPC.

Transcodage JSON gRPC

Le transcodage JSON gRPC permet aux applications de navigateur d’appeler des services gRPC comme s’il s’agissait d’API RESTful avec JSON.

  • L’application de navigateur n’a pas besoin de générer un client gRPC ni de savoir quoi que ce soit sur gRPC.
  • Les API RESTful sont créées automatiquement à partir des services gRPC en annotant le fichier .proto avec des métadonnées HTTP.
  • Permet à une application de prendre en charge les API Web gRPC et JSON sans dupliquer l’effort de création de services distincts pour les deux.

.NET intègre la prise en charge de la création d’API Web JSON à partir des services gRPC. Pour plus d’informations, consultez Transcodage JSON gRPC dans les applications ASP.NET Core gRPC.

Notes

Le transcodage JSON gRPC nécessite .NET 7 ou version ultérieure.

Ressources supplémentaires