Использование 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 или более поздней версии.
Дополнительные ресурсы
ASP.NET Core