Пожалуйста, имейте в виду, что я не разработчик, просто изучаю столько, сколько могу, делая и читая.
В настоящее время мы создаем решение с интерфейсом (реагируем, не в рамкахэтот вопрос) с бэкэнд API. Этот API также будет выполнять некоторые запросы к внешним API в нашей сети.
Мой вопрос связан не с самой функциональностью, поскольку этот код работает и выполняет необходимые действия, а с рекомендациями, производительностью и способами решения этой проблемы.
Итак, чтобы получитьвплоть до специфики:
У одного из наших внешних API есть схема AuthenticationScheme, где вы ПОСТАВЛЯЕТЕ заголовок авторизации:
client.BaseAddress = new Uri(serverURI);
client.DefaultRequestHeaders.Add("Authorization", authparam);
string json = JsonConvert.SerializeObject(null);
StringContent content = new StringContent(json);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage responseMessage = client.PostAsync("signin", content)
Этот код повторно используется на каждой конечной точке, с которой я разговаривал в этом API(около 20). Приведенный выше код возвращает файл cookie с ASP.NET_SessionID и sessionID.
Затем мы повторно используем клиент для дальнейших запросов на фактическое использование API (в той же конечной точке):
HttpResponseMessage responseMessage2 = await client.GetAsync("endpoint", cancellationToken);
if (responseMessage2.IsSuccessStatusCode)
{
var stringContent = await
responseMessage2.Content.ReadAsStringAsync();
var content2 = JsonConvert.DeserializeObject<IEnumerable<model>>(stringContent)
Where(ms => ms.SystemName.StartsWith(string));
return Ok(content2);
}
В настоящее время мы испытываем задержку ~ 2 секунды на каждый запрос, который я делаю к этому внешнему API, из-за запуска этой процедуры аутентификации и создания нового sessionID во внешнем API.
Могу ли я использовать Cookie любым способом и каким образомЯ начинаю это делать? Кроме того, существует множество повторяющегося кода в отношении авторизации, выполняемой при каждом вызове API для моего API - и использующей много сеансов во внешнем API.