Использование gRPC в приложениях на основе браузера
Примечание.
Это не последняя версия этой статьи. В текущем выпуске см . версию .NET 8 этой статьи.
Предупреждение
Эта версия ASP.NET Core больше не поддерживается. Дополнительные сведения см. в статье о политике поддержки .NET и .NET Core. В текущем выпуске см . версию .NET 8 этой статьи.
Внимание
Эта информация относится к предварительному выпуску продукта, который может быть существенно изменен до его коммерческого выпуска. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
В текущем выпуске см . версию .NET 8 этой статьи.
Автор: Джеймс Ньютон-Кинг (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
Перекодирование gRPC JSON позволяет браузерным приложениям вызывать службы gRPC, как обычные RESTful API с поддержкой формата JSON.
- Браузерному приложению не нужно создавать клиент gRPC и не нужно ничего знать о gRPC.
- RESTful API можно создавать автоматически из служб gRPC, добавляя к файлу
.proto
метаданные HTTP. - Это позволяет приложению параллельно поддерживать веб-API gRPC и JSON, не дублируя действия по созданию отдельных служб для разных типов интерфейсов.
В .NET предусмотрена встроенная поддержка для создания веб-API JSON из служб gRPC. Дополнительные сведения см. в статье Перекодирование gRPC JSON в приложениях ASP.NET Core gRPC.
Примечание.
Для перекодирования gRPC JSON требуется .NET 7 или более поздней версии.
Дополнительные ресурсы
ASP.NET Core