Как выполнить распространение заголовка между Http и gRP C в Asp. Net Core - PullRequest
0 голосов
/ 05 марта 2020

У меня есть несколько встроенных микросервисов ASP. Net Базовый WebAPI, каждый из которых поддерживает службы REST HTTP и gRP C для всех методов API.

Мне нужно распространить некоторые заголовки между вызовом HTTP Restful API и вызванным изнутри вызовом gRP C, направленным другому ASP. Net Базовой службе WebAPI, чтобы можно было использовать заголовок во втором сервисе.

Мне также нужно иметь возможность распространять заголовки между gRP C методом service-A и gRP C методом service-B и обратно.

Использование Microsoft .AspNetCore.HeaderPropagation, которую мы можем создавать, если она не существует, а также распространять заголовки для последующих вызовов HttpClient, но, похоже, не может делать то же самое для вызова метода gRP C.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 11 марта 2020

Клиенты gRP со строгой типизацией C используют HttpClient для внутреннего использования. Вы можете использовать что-то подобное:

var handler = new HttpClientHandler();

httpClient.DefaultRequestHeaders.Add("<headerToPropagate>", "<valueFromRequestHeader>");

var channel = GrpcChannel.ForAddress("<GrpcServerEndpoint>", new GrpcChannelOptions
{
    HttpClient = new HttpClient(handler)
});
...