Поделиться через


Использование gRPC в приложениях на основе браузера

Примечание.

Это не последняя версия этой статьи. В текущем выпуске см . версию .NET 9 этой статьи.

Предупреждение

Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в политике поддержки .NET и .NET Core. В текущем выпуске см . версию .NET 9 этой статьи.

Внимание

Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

В текущем выпуске см . версию .NET 9 этой статьи.

Автор: Джеймс Ньютон-Кинг (James Newton-King)

Службу gRPC нельзя вызвать напрямую из браузера. gRPC использует функции HTTP/2, и ни один браузер не предоставляет необходимый уровень контроля над веб-запросами для поддержки клиента gRPC.

gRPC на ASP.NET Core предлагает два решения, совместимые с браузером, gRPC-Web и gRPC JSON транскодирование.

gRPC-Web

gRPC-Web позволяет браузерным приложениям вызывать службы gRPC с помощью клиента gRPC-Web и Protobuf.

  • Это похоже на обычный gRPC, но используется немного другой протокол, что обеспечивает совместимость с HTTP/1.1 и браузерами.
  • Браузерное приложение должно создать клиент gRPC из файла .proto.
  • Позволяет приложениям, использующим браузер, реализовывать преимущества двоичных сообщений, а именно высокую производительность и низкий уровень использования сети.

.NET имеет встроенную поддержку gRPC-Web. Дополнительные сведения см. в статье gRPC-Web в приложениях ASP.NET Core gRPC.

Перекодирование gRPC JSON

Транскодирование JSON gRPC позволяет приложениям браузера вызывать службы gRPC, как если бы они были API RESTful с JSON.

  • Браузерному приложению не нужно создавать клиент gRPC и не нужно ничего знать о gRPC.
  • API RESTful автоматически создаются из служб gRPC путем аннотирования .proto файла с метаданными HTTP.
  • Позволяет приложению поддерживать как gRPC, так и веб-API JSON без дублирования усилий по созданию отдельных служб для обоих.

.NET имеет встроенную поддержку создания веб-API JSON из служб gRPC. Дополнительные сведения см. в разделе перекодирование JSON gRPC в приложениях ASP.NET Core gRPC.

Примечание.

Для перекодирования JSON gRPC требуется .NET 7 или более поздней версии.

Дополнительные ресурсы