Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Faça como eu fiz: refatorando uma função

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();
    }
}
1 resposta
solução!

Oi, Diego! Como vai?

Agradeço por compartilhar.

Gostei bastante da forma como você separou as responsabilidades entre o Program e a classe Personagem, deixando o código mais organizado. Também chamou atenção o uso do método TraduzirGenero() antes da exibição, o que mostra um cuidado com a apresentação dos dados.

Uma dica interessante para o futuro é usar o método string.IsNullOrWhiteSpace para validar strings de forma mais segura.


string nome = "";

if (!string.IsNullOrWhiteSpace(nome)) {
    Console.WriteLine(nome);
}

Esse código verifica se a string não tá vazia ou composta apenas por espaços, evitando exibições desnecessárias.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!