Skip to content

Latest commit

 

History

History
24 lines (16 loc) · 2.33 KB

README.md

File metadata and controls

24 lines (16 loc) · 2.33 KB

Реализация Get Started туторила по protobuf-net.Grpc.

Этот пакет позволяет создавать сервисы и их контракты для коммуникации по gRPC используя подход code first ("в стиле" WCF). Субъективно, это гораздо удобнее для разработки внутренних систем, чем использование .proto.

Заметки по проектам

Service

Нужно настроить сервис на поддержку HTTP/2. Для этого нужно немного переписать Program.cs. Я переписал по официальному примеру. Про метод расширения ConfigureKestrel читать здесь.

Метод Division проверяет аргументы. Если Y == 0, выбрасывает исключение RpcException с кодом 13 (InvalidArgument).

Client

Нужно дополнительно установить пакет Grpc.Net.Client (конкретно в примере без него класс GrpcChannel не доступен).

Код вызова методов обёрнут в try/catch. Блок catch перехватывает ошибки RpcException для корректной обработки gRPC кодов ошибок.

Код по обработке ошибок добавлен на основе материалов:

Пример я немного переписал. Чтобы не затирать заданные в конфигурации прослушиваемые адреса, использую опцию ConfigureEndpointDefaults:

kestrelOptions.ConfigureEndpointDefaults(x => x.Protocols = HttpProtocols.Http2);