Компилируем файлы Protobuf и генерируем клиенты¶
Прежде всего нам надо добавить файлы Protobuf к нашему приложению. Сразу предлагаю размещать их в подпапках с версией, как в серверном приложении.
На клиентской стороне можно не размещать файлы самостоятельно. Есть специальный диалог для добавления. Щёлкаем на проекте правой кнопкой, затем Add > Service Reference… и в открывшемся окошке выбираем gRPC

Далее есть два варианта. Для версии 1 выбираем File и находим нужный файл (я заранее скопировал его в папку Protos в клиентском проекте).

Второй вариант — скачать файл с сервера. Как вы помните, в в прошлой главе мы добавили специальные эндпоинты для этого.
Так как VS пытается скачать файлы, используя HTTP/1, нужно разрешить нашему серверному приложению работать через HTTP/1. Для этого исправим файл appsettings.json:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*",
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http1AndHttp2"
}
}
}
Конкретнее, строчку
"Protocols": "Http2" заменим на "Protocols": "Http1AndHttp2".Теперь, используя тот же способ, добавляем новый сервис, но уже с опцией URL:

Теперь в подключенных сервисах видно, что v1 мы добавили из файла, а v2 — из URL.
Теперь можно сбилдить проект, и сгенерируются клиентские заглушки.
Дата создания : 23 апреля 2023 г.