Program.cs
using System.Text.Json;
using System.Text.Json.Nodes;
using (HttpClient client = new ()) {
try {
var response = await client.GetStringAsync("https://www.anapioficeandfire.com/api/characters");
var listaPersonagens = JsonSerializer.Deserialize<List<Personagem>>(response);
listaPersonagens!.ForEach(p => p.ExibirInformacoes());
}
catch (Exception ex) {
Console.WriteLine("Ocorreu um erro ao tentar requisitar dados desse endpoint.");
Console.WriteLine($"Erro: {ex.Message}");
}
}
Personagem.cs
using System.Text.Json.Serialization;
class Personagem {
[JsonPropertyName("name")]
public string? Nome {get;set;}
[JsonPropertyName("gender")]
public string? Genero {get;set;}
[JsonPropertyName("aliases")]
public List<string>? Aliases {get;set;}
[JsonPropertyName("tvSeries")]
public List<string>? TemporadasQueApareceu {get;set;}
public void TraduzirGenero() {
if (Genero == "Male") Genero = "Masculino";
if (Genero == "Female") Genero = "Feminino";
}
public void ExibirInformacoes() {
Console.WriteLine();
TraduzirGenero();
if (Nome != "") Console.WriteLine($"Nome: {Nome}");
if (Genero != "") Console.WriteLine($"Gênero: {Genero}");
if (Aliases!.Count != 0) {
Console.WriteLine($"Apelidos: ");
Aliases!.ForEach(a => Console.WriteLine($"- {a}"));
}
if (TemporadasQueApareceu!.Count != 0) {
Console.WriteLine($"Temporadas: ");
TemporadasQueApareceu!.ForEach(ts => Console.WriteLine($"- {ts}"));
}
Console.WriteLine();
}
}