Apenas com isso, eu creio que já pegaria os dados referentes à API e os colocaria na tela:
using (HttpClient client = new()) {
var endpoint = "https://www.cheapshark.com/api/1.0/deals";
try {
var response = await client.GetStringAsync(endpoint);
}
catch (Exception ex) {
Console.WriteLine($"Ocorreu um erro ao requisitar para o Endpoint: {ex.Message}");
}
}
Todavia, a atividade solicita guardar dados específicos relacionados a promoções em uma lista, então eu precisaria de outra forma de tratar esses dados, diferente de uma string.
Pesquisando, acabei encontrando o método GetFromJsonAsync, que me retornava como resposta valores específicos que poderiam ser armazenados em uma lista baseada no tipo de objeto requisitado. Por isso, criei uma classe externa para estruturar o objeto do tipo GameShark (foi um nome que eu pensei por ter confundido com cheapshark) com as propriedades presentes no .json, que seriam title, normalPrice(que eu acabei não usando) e salePrice.
Usei a documentação específica de HTTP request: https://learn.microsoft.com/en-us/dotnet/fundamentals/networking/http/httpclient
GameShark.cs
class GameShark {
public string? title {get;set;}
public string? normalPrice {get;set;}
public string? salePrice {get;set;}
}
Program.cs
using System.Net.Http.Json;
using (HttpClient client = new()) {
var endpoint = "https://www.cheapshark.com/api/1.0/deals";
try {
var listaJogos = await client.GetFromJsonAsync<List<GameShark>>(endpoint);
listaJogos!.ForEach(j => Console.WriteLine($"{j.title} R${j.salePrice}"));
}
catch (Exception ex) {
Console.WriteLine($"Ocorreu um erro ao requisitar para o Endpoint: {ex}");
}
}