У меня есть API покоя вендора, которому мы возвращаем значительные объемы данных json.Мы не можем позволить нашим клиентам напрямую обращаться к этому API, поэтому мы создали собственный REST API (C # WebAPI), который принимает запросы от наших клиентов.
Затем наш веб-API манипулирует данными и отправляет запрос в API отдыха вендора вместе с необходимыми учетными данными.
Мы не делаем никаких манипуляций с данными, возвращаемыми от вендора.API.
Я хочу вернуть тот же поток, который возвращается из REST API поставщика, но я не хочу ждать, пока поток закроется.Как только мы начнем получать данные от вызова REST API поставщика, я хочу, чтобы эти же данные затем возвращались вызывающей стороне клиента из нашего REST API.
Это обеспечит огромное преимущество в производительности и значительно сократит затраты наscaling.
Клиент ------ вызывает наш REST API ----> {НАШ REST API} ------- вызывает поставщик REST API ------> {поставщик RESTAPI}
Как мы можем сделать что-то подобное в C #?
[HttpGet]
public async Task<IActionResult> Get([FromQuery]SearchQuery queryParam)
{
string apiKey = _configuration.GetValue<string>("VendorAPIKey");
string restUrl = "https://vendorresturl.com/api/search?kajhfjhsdf";
var hclient = new HttpClient();
hclient.DefaultRequestHeaders.Add("api-key", apiKey);
var responseMessage = await hclient.GetAsync(restUrl.ToString());
var c = new ContentResult();
c.ContentType = "application/json";
c.Content = await responseMessage.Content.ReadAsStringAsync();
return c;
}