1
resposta

[Projeto] Desafio: hora da prática

#region Consumo de API Hora da pratica Filmes
using Teste4_Alura.ConsumindoAPI;
using System.Text.Json;
using (HttpClient client = new HttpClient())
{ 
    
    try
    {

        string resposta = await client.GetStringAsync("https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/TopMovies.json");
        List<Filmes> filmes = JsonSerializer.Deserialize<List<Filmes>>(resposta)!;

        string respostaPais = await client.GetStringAsync("https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/Paises.json");
        List<Pais> pais = JsonSerializer.Deserialize<List<Pais>>(respostaPais)!;

        string respostaCarro = await client.GetStringAsync("https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/Carros.json");
        List<Carro> carro = JsonSerializer.Deserialize<List<Carro>>(respostaCarro)!;

        string respostaLivros = await client.GetStringAsync("https://raw.githubusercontent.com/ArthurOcFernandes/Exerc-cios-C-/curso-4-aula-2/Jsons/Livros.json");
        List<Livro> livro = JsonSerializer.Deserialize<List<Livro>>(respostaLivros)!;

        
        foreach(Filmes filme in filmes)
            {
                Console.WriteLine(filme.ExibirFichaTecnicaFilme);
            }

        foreach(Pais paises in pais)
        {
            Console.WriteLine(paises.ExibirListadosPaises);
        }

        foreach (Carro car in carro)
        {
            Console.WriteLine(car.ExibirListadeCarro);
        }

        foreach (Livro livr in livro)
        {
            Console.WriteLine(livr.ExibirDetalhesLivro);
        }

    }
    catch (Exception ex)
    {
            Console.WriteLine($"Error: {ex.Message}");
    }

}

#endregion
using System.Text.Json.Serialization;

namespace Teste4_Alura.ConsumindoAPI;

internal class Filmes
{
    [JsonPropertyName("title")]
    public string? Nome { get; set; }

    [JsonPropertyName("year")]
    public string? Ano { get; set; }

     public string ExibirFichaTecnicaFilme => 
     $"""
     Title {Nome} 
     Ano {Ano}

     """;
}
using System.Text.Json.Serialization;

namespace Teste4_Alura.ConsumindoAPI;

internal class Pais
{
    [JsonPropertyName("nome")]
    public string? Nome { get; set; }

    [JsonPropertyName("capital")]
    public string? Capital { get; set; }

    [JsonPropertyName("continente")]
    public string? Continente { get; set; }

    public string ExibirListadosPaises => 
        $""" 
         Nome do Pais: {Nome}
         Nome da Capital: {Capital}
         Nome do Continente: {Continente}

        """;
        

}
using System.Text.Json.Serialization;

namespace Teste4_Alura.ConsumindoAPI;

internal class Carro
{
    [JsonPropertyName("marca")]
    public string? Marca { get; set; }

    [JsonPropertyName("modelo")]
    public string? Modelo { get; set; }

    [JsonPropertyName("ano")]
    public int? Ano { get; set; }

    public string ExibirListadeCarro =>
        $"""
        Marca do Carro: {Marca}
        Modelo do Carro: {Modelo}
        Ano do carro: {Ano}

        """;

}
using System.Text.Json.Serialization;

namespace Teste4_Alura.ConsumindoAPI;

internal class Livro
{
    [JsonPropertyName("titulo")]
    public string? Titulo { get; set; }
    [JsonPropertyName("autor")]
    public string? Autor {  get; set; }
    [JsonPropertyName("genero")]
    public string? Genero { get; set; }

    public string ExibirDetalhesLivro =>
        $""""
        Nome do Livro: {Titulo}
        Nome do Autor: {Autor}
        Genero do Livro: {Genero}

        """";

}
1 resposta

Olá, Ulysses! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de HttpClient para consumir diferentes APIs, utilizou muito bem a desserialização com JsonSerializer para transformar os dados em objetos e ainda compreendeu a importância de organizar cada entidade em classes específicas para manter o código limpo e estruturado.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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