Перейти к содержанию

Компилируем файлы Protobuf и генерируем клиенты

Прежде всего нам надо добавить файлы Protobuf к нашему приложению. Сразу предлагаю размещать их в подпапках с версией, как в серверном приложении.

На клиентской стороне можно не размещать файлы самостоятельно. Есть специальный диалог для добавления. Щёлкаем на проекте правой кнопкой, затем Add > Service Reference… и в открывшемся окошке выбираем gRPC
Pasted image 20230412212026.png
Далее есть два варианта. Для версии 1 выбираем File и находим нужный файл (я заранее скопировал его в папку Protos в клиентском проекте).
Pasted image 20230412213917.png
Второй вариант — скачать файл с сервера. Как вы помните, в в прошлой главе мы добавили специальные эндпоинты для этого.
Так как VS пытается скачать файлы, используя HTTP/1, нужно разрешить нашему серверному приложению работать через HTTP/1. Для этого исправим файл appsettings.json:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "Kestrel": {
    "EndpointDefaults": {
      "Protocols": "Http1AndHttp2"
    }
  }
}

Конкретнее, строчку "Protocols": "Http2" заменим на "Protocols": "Http1AndHttp2".
Теперь, используя тот же способ, добавляем новый сервис, но уже с опцией URL:
Pasted image 20230412221151.png
Теперь в подключенных сервисах видно, что v1 мы добавили из файла, а v2 — из URL.
Pasted image 20230412221647.png

Теперь можно сбилдить проект, и сгенерируются клиентские заглушки.


Последнее обновление : 23 апреля 2023 г.
Дата создания : 23 апреля 2023 г.

Комментарии

Комментарии