Aprenda a lidar com API de descanso no Flutter - Android e IOS | Rahul Agarwal | Skillshare
Pesquisar

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Aprenda a lidar com API de descanso no Flutter - Android e IOS

teacher avatar Rahul Agarwal, Flutter Developer & Trainer

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      INTRODUÇÃO DO CURSO

      0:51

    • 2.

      O que é pedido de Http

      9:12

    • 3.

      Como implementar solicitação GET para um servidor

      29:05

    • 4.

      Como configurar dados Json da API

      15:25

    • 5.

      Aplicativo de compras básico

      24:51

    • 6.

      Como lidar com solicitação POST

      17:30

    • 7.

      Pedido PUT e DELETE

      13:21

    • 8.

      Como criar solicitações autenticadas

      10:51

    • 9.

      Por que precisamos de modelos

      7:16

    • 10.

      Como criar nosso primeiro curso de modelo

      10:51

    • 11.

      Alterações necessárias no frontend

      6:31

    • 12.

      Ferramenta para gerar modelos facilmente

      10:30

    • 13.

      Consumir um novo api

      12:44

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

93

Estudantes

--

Sobre este curso

Como lidar com solicitações de rede e integrar APIs é um dos problemas enfrentados pelos iniciantes do Flutter. Vamos aprender como podemos acessar a API REST em um aplicativo Flutter. Hoje, a maioria dos aplicativos usa dados remotos usando APIs. Assim, este curso será o importante para os desenvolvedores que querem fazer seu portador no Flutter.

Vamos criar um aplicativo de compras normal que exibe uma lista de produtos que são obtidos pela internet em nosso aplicativo Flutter. Vamos integrar API Fakestore para este propósito. É uma API REST on-line gratuita que podemos usar sempre que precisamos de dados buracos para nosso aplicativo de e-commerce sem ter nosso próprio servidor de backend.

Além disso, ao lidar com APIs, podemos obter um grande número de dados que podem ter vários campos e para converter cada campo JSON em objetos de arte. Este conceito é chamado de análise JSON que também vamos discutir mais tarde.

Conheça seu professor

Teacher Profile Image

Rahul Agarwal

Flutter Developer & Trainer

Professor

Hello, I'm Rahul. I am skilled in building cross platform application using Flutter. I am freelance developer as well as conduct workshops to share my knowledge with the community.

Visualizar o perfil completo

Level: Intermediate

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. INTRODUÇÃO DO CURSO: Lidar com solicitações de rede e integrar APIs é um dos problemas enfrentados pelos iniciantes. Neste curso, vamos criar um aplicativo de compras normal que exibe uma lista de produtos que são buscados pela Internet em nosso aplicativo mais plano integrando fixo ou APA. Para esse fim, é uma API de descanso on-line gratuita que podemos usar sempre precisarmos acomodar isso para nosso aplicativo de comércio eletrônico sem ter nosso próprio servidor de back-end. Além disso, ao lidar com APIs, podemos obter um grande número de dados que podem ter vários campos. E, portanto, é melhor converter cada Jason em objetos Dart. Esse conceito é chamado de análise json, que também discutiremos posteriormente. Então, sem perder mais tempo, vamos começar. 2. O que é o pedido de Http: Olá, bem-vindo de volta ao novo vídeo. Neste módulo, falaremos sobre como implementar chamadas de API REST na Flórida. Se você planeja desenvolver aplicativos que buscam dados da Internet, precisará saber como fazer solicitações de rede e como lidar com as respostas adequadamente. Então, definitivamente, quando você está criando um aplicativo do mundo real, haverá muitos cenários em que você precisará buscar dados do servidor ou precisará obter ajuda de algumas APIs em seu aplicação. Quer tenha sido usada API ou API do Google ou qualquer outra coisa. Nesses cenários, você precisa saber como lidar com APIs de maneira eficaz. Então, agora a pergunta é: o que é uma solicitação de rede? Em termos simples, quando você abre um aplicativo como WhatsApp, Instagram ou Twitter em seu smartphone. App, tenta buscar os dados mais recentes de um local remoto, geralmente chama esse servidor. O servidor é um local centralizado que armazena a maioria dos dados do usuário. O aplicativo que você está usando é chamado de cliente. Portanto, existem dois termos chamados servidor e cliente. Cliente é o aplicativo, e isso é qualquer que seja o aplicativo ou aplicativo Android ou iOS que você está usando. E o servidor é o banco de dados que é armazenado em um local distante. Então esse é um conceito muito básico. Agora, o que é uma API RESTful? O resto significa Representational State Transfer. É uma interface de programa aplicativo que é API, ou seja, essa solicitação HTTP para obter ou enviar dados entre computadores. Portanto, lembre-se de que a comunicação entre um cliente e um servidor ocorre principalmente por meio de APIs RESTful. É isso aí. A forma mais básica de forma realista é uma URL que o cliente usa para fazer uma solicitação ao servidor. Então, se você vir alguma API ou comer, você receberá uma URL, que você teve que enviar a solicitação. Ou seja, você precisa acessar esse URL específico. E ao receber uma solicitação bem-sucedida, o servidor verifica o ponto final da URL, faz algum processamento e envia os dados solicitados de volta ao cliente. Portanto, essa é uma maneira muito simples de explicar, definitivamente nessa questão técnica central, pode ser um pouco complexa também, mas você só precisa lembrar que enviaremos uma solicitação ao servidor o servidor nos dará alguns dados. É isso aí. Agora, existem diferentes métodos que você usa em uma API REST. Portanto, existem muitos deles, mas os mais usados são 4. O primeiro é a solicitação GET. Significa simplesmente que você deseja obter alguns dados de uma solicitação de banco de dados remoto usando get only retrieve data, o que significa que eles não têm outro efeito sobre esses dados específicos. Isso significa que você vai ler os dados. Você não pode alterar nada usando a solicitação GET. Não postar solicitação. As solicitações de postagem enviam dados para esse recurso específico. Você usa o método para enviar dados para o servidor, como informações do cliente ou uploads de arquivos. Portanto, indiretamente, lembre-se de que, se você precisar enviar algo do cliente para o servidor e salvá-lo no servidor. Nesse cenário, você usa a solicitação post. O terceiro está atrasado. Então, ele faz o que diz que exclui o recurso específico do servidor. E o quarto é colocado, ou seja, substitui, ou você pode dizer, atualiza todas as representações atuais dos recursos-alvo. Isso significa que você já enviou alguns dados para o servidor, mas, posteriormente, deseja atualizar essa auditoria de campo específica, particularmente de dados como idade ou número de telefone. Então, nesse caso, você usa a solicitação PUT. Então, definitivamente, eles são uma solicitação de patch e mais alguns. Se você quiser saber sobre todas as solicitações, basta pesquisar no Google. Mas, na maioria das vezes quando você está criando um aplicativo, você está trabalhando com isso por solicitação. Agora, em vibração, definitivamente, se você quiser fazer alguma coisa, temos que obter essa dependência. Então, para solicitação HTTP, também, há uma dependência chamada pacote HTTP é simplesmente anexar seu navegador, ir para dev e apenas digitar http. E então lembre-se de selecionar este. Isso é da própria equipe do Dart. Sim, role para baixo e copie essa dependência. E no seu aplicativo você pode colá-lo. Lembre-se, se você quiser criar um novo projeto, também poderá fazê-lo agora Estou usando nosso projeto anterior, mas removerei esses códigos anteriores. Então, se você quiser, você pode simplesmente pausar o vídeo e escrever na Flórida, criar um projeto novo e começar do início. Depende de você. Nossa carta pub get está funcionando. Isso vai pegar a dependência e sim, está feito. Agora nossa dependência HTTP está instalada. A próxima coisa que farei é remover os arquivos anteriores. E agora, na pasta mid lib, criarei novas pastas como a primeira é verde e a segunda é a pasta de serviços. E dentro da tela, criarei serviços de pontos e insights iniciais. Lembro-me de que vou criar um serviço de APIs ponto ponto. Então, simplesmente o que eu fiz foi organizar nossos códigos de uma maneira limpa. É como se todas as telas estivessem na pasta telas. Todos os serviços de API que são códigos mais antigos do lado do servidor ou o que quer que esteja interagindo com a API estarão no ponto ponto do serviço da API. Dessa forma, você tem uma separação de código e terá esse modelo MVC, que também é o padrão Model View Controller. É uma boa prática. Você não quer, você não quer escrever todos os seus códigos aleatoriamente e em apenas um arquivo. Será muito difícil para você organizar ou depurar a longo prazo. É isso aí. Nós entendemos o que é STDP, quais são seus métodos diferentes e como instalar o pacote HTTP em nosso projeto. Na próxima sessão, usaremos algumas APIs reais e chamaremos essas APIs usando essa solicitação GET. Obrigada. Vejo você no próximo vídeo. 3. Implementar solicitação GET a um servidor: Oi. Nesta sessão, usaremos uma API rest real com o nome de fixo ou APA. Na Internet, você obterá muitas APIs, mas usaremos uma API fictícia para que ela seja gratuita para uso. E podemos fazer o que quisermos. Com essa API. Podemos obter alguns dados falsos de comércio eletrônico. O que significa simplesmente que se você quiser obter produtos, categorias, usuários ou qualquer outra coisa, você pode obtê-los neste APM. Traga seu editor de texto à medida que você traz seu navegador e simplesmente digite fixo ou APA. E o primeiro que aparecer, você tem que clicar nele. O URL é Api.com de loja falsa. Então, sim, é isso. Você não precisa criar nenhuma conta ou qualquer coisa para usá-la. Esses são os recursos que ela nos fornece produtos. Isso nos dá o Exército capturado, nos dá usuários e tokens de login. E essas outras rotas. Ou seja, eu estava falando sobre a Nike. Existem URLs e pod. Você pode dizer pontos finais. Você tem que enviar uma solicitação. Então, esses são os pontos finais. Então, simplesmente se eu clicar nele, ver no topo você pode ver loja falsa, produtos de barra Api.com. Esse é o URL e, quando você acessa esse URL, essa é a resposta que você receberá. Portanto, está nesse formato JSON. Tem título de identificação, descrição, imagem, preço. Então, esses são os dados que ele nos fornecerá e nós os usaremos, esses dados em nossa interface do usuário. Então, lembre-se, depois de concluir essa API de loja falsa, você pode ter a API de notícias, você pode ter a API do blog. Existem muitas outras APIs. Se você quiser, você pode experimentar por conta própria. Mas vamos começar com a APA desta semana. A primeira coisa que precisamos fazer é criar uma função que lidará com essa solicitação GET. Isso significa simplesmente que essa função interagirá com a API. Portanto, a partir de agora, escreveremos os serviços da API, ou seja, todos os serviços relacionados às APIs. Neste arquivo separado. Não queremos escrever tudo na interface do usuário. Simplesmente vamos importar o pacote HTTP primeiro. Essa é a maneira de fazer isso. Então, simplesmente criarei a classe de serviço de APIs. Podemos usar essa classe em qualquer lugar em nosso aplicativo criando um objeto e , em seguida, chamando diretamente essas funções. Agora, a primeira função que criaremos é GET ou post. Então, será uma sincronização. Agora, temos que escrever o URL primeiro. O URL é esse. Você pode simplesmente obter o URL na parte superior. Você acabou de copiar e colar aqui. Agora, para enviar uma solicitação get usando esse pacote HTTP, você não pode enviar a string diretamente. Você precisa convertê-lo em barras URI. E dentro dela. Você tem que mencionar jarda e ponta. Esse é o método ou essa é a maneira de fazer isso. Você só se lembra disso. Definitivamente. Você vai se acostumar com isso. Agora. Agora temos o URL a ser acessado para enviar a solicitação. Agora chegou a hora. Obtemos o resultado que está usando o pacote HTTP. É o ponto p. E então você pode ver que há muitos pedidos para obter pós-patch. Mas queremos essa solicitação GET. E dentro dele você simplesmente escreve o URL do produto. Ok? Você tem que devolver. Agora. Você pode imprimir o código de status do ponto de resultado. Se for 200, então obtivemos essa resposta com sucesso. Se for 404, então essa página não existe. E também, se você quiser, você pode apenas nomear. É. Responde como você pode apenas pelo nome, você pode entender que essa variável tem a resposta da solicitação GET. E, finalmente, você precisa retornar esse corpo de resposta nesse formato JSON. Então você vai, certo Jason, você tem que importar essa conversão de dados e nós simplesmente escreveremos json dot, decode e response.body aqui. Portanto, nossa função ou método está completo. É assim que enviamos uma solicitação get. Então, simplesmente você pode ver, primeira coisa foi escrever um URL. O segundo foi obter a resposta usando essa resposta http.get. E depois desse STDP get, podemos retornar o corpo da resposta para a interface do usuário que chama essa função. Ok? Portanto, a próxima parte é exibir esses dados em nossa página inicial. Simplesmente em home dot, dot create. Página inicial básica da IU. Então o retorno é falso. Dan, aplicativo. Na barra de aplicativos. Eu morri. Então eu farei centrado. Título é igual a verdadeiro, elevação é igual a 0. E eu darei a cor de fundo como as cores de fundo pontilham o sotaque vermelho. No corpo. Usaremos o Future Builder já que essa função é um futuro. E no futuro, vou simplesmente escrever ponto de resposta da API, obter todas as postagens. Veja aqui que criamos esse objeto dessa classe e simplesmente chamamos essa função futura. Portanto, esta é a primeira vez que você usará uma função futura real. Nos vídeos anteriores, estávamos apenas assustando essa função. Mas agora é uma função de servidor real que levará algum tempo para ser executada. No construtor, teremos um texto e um instantâneo. Então, como de costume, no início, verificaremos se o instantâneo que tem dados ou então o indicador de progresso circular do centro de retorno. E se ele tiver dados por enquanto, estamos apenas enviando um texto de sucesso. Porque eu quero ver a saída primeiro, essa saída no console de depuração primeiro. Então, vamos reiniciar. Derrube nosso aplicativo. Veja, temos esse sucesso aqui, mas no console de depuração você pode ver o código response.status é 200 e o corpo da resposta é assim. Ou seja, é uma lista de mapas. Então, nos primeiros dados. Esse é o primeiro dado. Então você tem título de identificação, descrição. Isso está no formato JSON. Para gerar esses dados na interface do usuário aqui, simplesmente usaremos um widget do construtor de pontos de exibição de lista. Widget Construtor de pontos de exibição de lista, o mesmo que o widget ListView. Aqui. Esses dados podem ser ilimitados. Ou seja, não sabemos o número de elementos nessa lista. Então, vamos simplesmente escrever o tamanho dessa lista aqui. construtor de pontos de exibição de lista tem dois parâmetros. O primeiro é a contagem de itens e o segundo é o construtor de itens. Item Builder é uma função que tem contextos e esse índice, índice é a posição desse elemento na lista que começa em 0. Portanto, o índice começa de 0123 para o número de elementos nessa lista menos um. Porque se houver cinco elementos na lista, o índice será de 0 a quatro. Então, simplesmente, a contagem de itens será dados de ponto de instantâneo, comprimento de ponto, porque instantâneo esses dados são esses. E usaremos seu comprimento. Então, lembre-se, se estivermos devolvendo algo no futuro, esse futuro o fará. Esses dados são armazenados nessa variável de instantâneo. Ok, agora temos um construtor de pontos de exibição de lista. E no construtor de itens, temos que devolver o que deveria ser o rígido nessa interface do usuário? Ou seja, o que devemos retornar à tela da interface do usuário? E eu retornarei o bloco da lista. Agora, simplesmente nesse título, vou escrever dados de pontos instantâneos. Então o índice é porque é uma lista, temos que usar esse índice que começará em 0. Isso imagina que a poluição 0 é essa. Ok? Então, aqui estamos nós aqui agora nesses dados do que isso. Então, este será um daqui. Este será um, eu acho que ainda está aqui. Sim. Sim, ainda aqui, é o segundo que é o único índice. Então, aqui vou simplesmente exibir o título aqui. Isso é checkout. Se eu fizer isso, teremos algum erro ou obteremos os dados? Tivemos esse erro, ok, ok, desculpe, desculpe. Só temos que cortar e colar aqui. E se não tiver dados, simplesmente retornaremos o indicador de progresso. Foi um erro muito tolo. Mas essas coisas acontecem. OK. Agora vamos verificar novamente. Veja que está carregando e depois temos esses dados. E como são dados de exibição de lista, eu posso rolar. Temos essa mochila, camisa slim, jaqueta de algodão, muita coisa. Então, temos todos os dados. E espero que você tenha entendido como eu usei essa coisa do Jason. Simplesmente instantâneo de dados de pontos é essa lista, esse índice de lista aprofundado. Eu fui para a posição 0 do crepúsculo, que é isso. E da posição 0, eu produzi essa chave de título porque sei que ela está no mapa que está no formato JSON, então eu só tenho que usar esse valor de chave. Agora, do título na liderança, estarei usando a propriedade image. Rede de pontos de imagem. Então simplesmente aqui Escreva o índice de dados de pontos do instantâneo do que a imagem. E eu simplesmente escreverei a altura como 5030. Agora, vamos salvar e ver. Verifique novamente se está funcionando corretamente. Sim. Veja que temos as imagens do servidor. Portanto, é a primeira vez que seus dados são reais, que vêm do servidor e seu aplicativo está com uma boa aparência. A próxima coisa que eu faria é usar essa legenda. E nesse texto, usarei o índice de dados de pontos instantâneos, e depois usarei essa coisa de preço. E como é um número inteiro, vou convertê-lo em uma string, C 1091. Mas eu quero adicionar cifrão também. E para escrever dólares. E você não pode simplesmente escrever esse símbolo porque a Flórida tem um significado diferente para ele. Então você tem que usar o dólar de barra invertida assim. E eu simplesmente aumentarei o preço é igual à barra invertida do dólar e depois mais. E quando você verifica a saída, ela parece muito boa. Está parecendo muito bom. Espero que você tenha entendido. Até agora. Estávamos usando essa solicitação get. Esse é o primeiro em que obtemos todos os produtos. Esse segundo método HTTP ou a rota são produtos, depois um produto específico, o que significa simplesmente como você pode obter esses detalhes únicos do produto. Então isso também é muito importante. Se você clicar nele, poderá ver a saída. Esse é apenas o detalhe de um que é apenas um produto. Portanto, se você usou qualquer aplicativo de comércio eletrônico ao clicar nesse produto, outra página aparece onde você tem detalhes detalhados do produto, imagem do produto, categoria do produto e em seguida, o botão Adicionar ao carrinho também. Então, para usar isso, novamente, você precisa criar uma nova função. Então, o que será simplesmente um único detalhe do produto. Para obter os detalhes de um único produto como isso é feito. Vamos tentar fazer isso. Primeiro. Depois deste post de guitarra, vou simplesmente copiar isso, colar, e vou nomeá-lo, obter um único produto. E o nome da variável será um único produto, URL. E também essa API de URL é ID aqui. E definitivamente é único porque não sabemos em qual usuário clicará. Então, temos que enviar o Id enquanto estamos chamando essa função como argumento. Então, simplesmente, este é o Maktab. Para obter esse detalhe de um produto específico. Tudo será o mesmo. Somente o URL é diferente agora, e estamos enviando o ID também. Agora, dentro da pasta da tela, crie outro nome de arquivo, tela Detalhes do produto. Portanto, quando o usuário clica nesse produto específico, ele deve ser enviado para a tela Detalhes do produto usando o ID do produto. Então, simplesmente insira o material. Em seguida, tenha um widget com estado chamado detalhes do produto. E agora lembre-se de que ele está aceitando e identificando. E nós o enviaremos para o construtor. Agora, nessa função de fatura, basta escrever scaffold. Então, novamente, a mesma coisa, AB bar. Em seguida, dentro de uma cor de fundo colore o sotaque vermelho. E no corpo deles. Temos que usar novamente esse futuro construtor para chamar nossa função de pesquisas de APIs. Dot obtém um único produto e esse ID, e esse ID está vindo do construtor. No contexto. Instantâneo. Em seguida, verifique o instantâneo que tem dados, caso contrário, retorne um indicador de progresso circular. É isso aí. Novamente, vou simplesmente voltar aqui o próximo sucesso, apenas para mostrar como isso é feito. Está funcionando ou não? Na tela inicial? Na exibição de lista, você precisa usar essa propriedade on tap. Você enviará isso enviando o usuário para a tela Detalhes do produto. Adl cole esse código. Você só precisa se lembrar de como enviar código e todos os detalhes básicos do produto. E no ID, você simplesmente precisa ser esse índice e, em seguida, simplesmente escrever o ID. Agora, se eu salvá-lo e clicar no primeiro item, C, está sendo exibido. E então, no console de depuração, você pode ver a saída. Esse é o título de identificação, novamente, a mesma coisa. Então você simplesmente precisa mostrar. Use esse detalhe para mostrá-los na interface do usuário, como fizemos na página inicial. Então, na tela do produto, basta remover esse texto e devolver um contêiner. E o contêiner apenas dá margem logo no início. Então filho será coluna porque há muitos dados. Agora, simplesmente no início, terei essa rede de pontos de imagem do que parece dados de pontos. E agora o índice não estará lá porque é estaticamente um mapa, não uma lista. Certo? Imagem do que altura de 200 e peso de ponto duplo infinito, que é todo o peso da tela. E então usa VJ centralizado e uma criança apareceu no preço. Então, novamente, vou usar dólares a mesma coisa que os dados de pontos instantâneos e tentar encadear e dar algum estilo também. Agora, o estilo terá o tamanho da fonte 25 e o peso da fonte. Peso da fonte, negrito. Vamos salvá-lo. Barraco. Veja. Está parecendo tão bom. Agora, o que vou fazer é dar um pouco de espaçamento na parte superior usando essa caixa de tamanho e fornecer o Tipo D. Então a imagem será letal para baixo e entre a imagem e o preço também darei alguma altura de dez para que tenhamos esse espaçamento aqui. E na coluna eu estarei usando o alinhamento principal existente que começa. Você saberá por que eu fiz isso nos próximos widgets que usaremos. Mas, por enquanto, temos uma interface de usuário muito bonita, que tem todos os produtos na primeira tela. E quando clico neste produto, isso significa jaqueta de algodão. Veja com a imagem, essa é a imagem do produto e esse preço está aparecendo. Então é isso. Espero que você tenha gostado de criar este vídeo. Aqui. Usamos essa solicitação HTTP GET. Portanto, lembre-se, esse é o único código necessário. Primeiro, esse URL depois é http.get. E, finalmente, você tem que retornar a resposta e decodificá-la no formato adjacente. É isso aí. No próximo vídeo, concluiremos esta página inteira mostrando todos os detalhes, como descrição, categoria e botão Adicionar ao carrinho. Até lá, tente entender o código corretamente. Se você não entendeu, basta assistir ao vídeo novamente. Mas, por favor, não pule nenhum conceito. Obrigada. 4. Como configurar dados do Json da API: Na última sessão, conseguimos buscar os detalhes de um produto específico. E conseguimos renderizá-lo na interface do usuário. Até agora, apenas a imagem no preço está sendo exibida. Mas hoje, nesta sessão, continuaremos mostrando todos os detalhes como descrição, categoria. E se eu tiver um botão Adicionar ao carrinho também. Vamos começar a página de detalhes do produto. Nós temos essa imagem. Depois, no centro. Nós temos esse preço. Então vamos ter uma caixa de tamanho para dar algum espaçamento e ter uma altura de dez. Em seguida, tenha um widget onde mostraremos esse título. Vários mostraram esse título e vamos dar um estilo a ele. Só queremos que o tamanho da fonte seja 25. Vamos ver. Ok, nós temos isso. Agora. A região do texto. Vamos ter um widget de chip. Se você não for barato, você só vai, se você ver isso, você vai saber que é uma espécie de tags. Se você viu alguma tag que seja eletrônica ou a categoria de tags ou hashtags. Esse tipo de rígido está sendo usado. Então, aqui vamos mostrar que obter diploma. E vamos ter decks. Vamos ter o dia seguinte. Fonte, tamanho 15 e cores mais frias pontilham branco. E nessa forma. Vamos ter uma cor de fundo. Cores, azul, cinza. Vamos dar uma olhada. Veja, eu estava falando sobre esse widget. Além disso. Se você quiser, você pode ter o alinhamento do eixo cruzado tão escuro para que tudo venha aqui. Deste lado, assim. Depende de você, o que você quiser. Isso, essas são coisas de estilo muito básicas. Não é grande coisa. Novamente, tenha uma caixa de tamanho. E então, finalmente, mostraremos essa descrição. Todas as chaves estão aqui. Por dentro da resposta. Você pode ver a imagem da descrição. E agora vou salvar e ver que esta é a descrição. Então, se você quiser, você pode fazer algum estilo ou algum tamanho de fonte. Só estou deixando assim. Agora. Vamos aqui ter um botão Adicionar ao carrinho. Vou dar como Botão Flutuante, botão ação flutuante. Então, digamos que um botão de ação flutuante. Então criança. Na criança. Vamos pegar o ícone. Adicione carrinho de compras, cartão de compras delineado no peito. Não estamos fazendo nada. Veja, nós temos isso aqui. Vou apenas dar a cor do fundo, colorida de verde. E também vou mudar a localização do botão de ação flutuante. Vou dar a ele a localização do botão de ação flutuante, o flutuador central. Então veja, está parecendo decente. Nossa página de detalhes do produto também está pronta. Se você for a qualquer outro produto, veja todos os detalhes aqui. O título da categoria, o preço, tudo está perfeito. Agora, quando vamos para a API da loja falsa, podemos ver que fizemos esse endpoint que é obter produtos mais antigos, obter um produto específico. Agora é hora de pegarmos as categorias. Veja se clicamos nele, existem 12344 categorias. Então, exibiremos essas categorias em nossa interface do usuário. Em primeiro lugar, criaremos uma função que interagirá. Vou apenas copiar e colar e certo, pegar o corajoso. Não está aceitando nada. Isso receberá um URL. Aqui. Esse é o ponto final. Então agora essa função vai para o servidor e busca na categoria presente Indus EPI. Definitivamente não. Para isso, novamente, temos que criar uma nova tela. Vou chamar tudo de categoria ponto, ponto. Espero que você esteja entendendo isso, tudo isso agora é muito fácil implementar a solicitação GET. Tudo é basicamente o mesmo. Estamos apenas concluindo nossa interface do usuário para que fique muito bonita. Na categoria antiga ponto ponto onde material simplesmente importante. Em seguida, crie um widget sem estado chamado get a goodie. Agora tenha uma barra de andaime. Morreu de. Próximo. Pegue as guloseimas com cores de fundo vermelhas e enviadas através do corpo. Teremos esse futuro. Será que isso de novo? Uma vez que ele estará interagindo com nossa função. Agora, use o objeto da nossa classe para chamar a função get all category. No construtor. Teremos contexto e um instantâneo do coletor. Simplesmente temos que verificar se o ponto do instantâneo tem dados. Caso contrário, retornaremos um conjunto de indicadores de progresso mais frios. Se instantâneo que tem o diabo, isso por tempo sendo devolvido, retorne um sucesso. Agora, o que você pode fazer é navegar até a tela. E para isso, na página inicial, vou criar alguns botões. Vai ser, eu posso, mas terá um ícone. Posso começar a ver a lista. Agora vamos navegar até a tela de categorias. Meu layout de página TDL. Teremos um contexto. E isso. Então, vamos ver como isso, qual é a saída no console de depuração. Você pode. Veja aqui este é o botão de ícone que temos, que são todas as categorias que, se eu clicar nele, teremos esse sucesso e veja, essa é a resposta de saída do servidor. Então, agora, simplesmente na página da categoria antiga, retornarei um Construtor de exibição de lista. Já que é uma lista. Contagem de itens, dados de pontos instantâneos, comprimento de pontos. E no Construtor de itens, eu simplesmente terei contextos e índices. Agora, temos esse índice e agora retornaremos um widget de cartão. Esse é outro widget. Eu acho que é um widget realmente básico que tem um alívio, apenas dará alguma margem e seguida, dará a ele uma forma de borda retangular arredondada, raio da borda, raio da borda, circular 15. E então, nessa criança, você terá um recipiente. Isso é apenas uma coisa básica em que exibirei esses eletrônicos. Joy continua sendo coleção de tudo. Agora, aqui nesse texto, mostrarei os dados dos pontos do instantâneo e, em seguida, indexarei diretamente. E eu vou colocar em maiúsculas. Só para ver um bom dia. Vou dar um tamanho de fonte de 25. Agora vamos ver. Vamos conferir a saída. Agora, quando eu clico nele. Veja eletrônicos, joias, roupas masculinas, mulheres. Então, está parecendo muito bom. Está parecendo decente. Você pode dizer pelo menos essa margem e preenchimento onde eu costumava dar o espaçamento dentro e fora desses cartões. E, definitivamente, quando clicarmos neste cartão, devemos ir para uma tela onde todos os produtos relacionados a essa categoria serão exibidos. Para isso no cartão, vamos apenas envolvê-lo com um widget de tinteiro e não temos a função de toque nele, que usaremos mais tarde para buscar produtos por categorias. Então é isso para este vídeo. No próximo vídeo, buscaremos os produtos por suas categorias. ONG. 5. Aplicativo básico de compras: Oi, bem-vindo de volta. Nesta sessão, concluiremos essa solicitação GET. E até agora, conseguimos buscar as categorias e exibir em nosso aplicativo. Mas agora é hora de buscar produtos com base nessas categorias. Isso significa que se eu clicar em eletrônicos, uma nova tela deve aparecer contendo todos os produtos eletrônicos. E para esse ponto final é esse, que é a categoria de produtos. E então temos que enviar esse nome de categoria. Então, como sempre, vamos começar com a API primeiro. Então, para isso, vou apenas copiar e colar aqui. Vou dar um nome, pegar o produto. Ao conseguir. Agora ele aceitará um string cat chamado esse nome de categoria. E o nome da variável. Vou mudar isso para buscar o produto. Obtenha o corajoso que você é. Você pode nomear o que quiser. E aqui o ponto final é como essa categoria e depois o nome do gato. Então veja, é assim que é feito e se clicarmos nele, ele nos dará uma resposta. Com produtos Alda. Agora temos a função pronta, mas também devemos criar uma nova tela, que chamaremos de função. Vou nomear categoria de idade, produto ponto ponto. E agora vou importar meu TDL. Do que um estado menos rígido de uma tela. Ele aceitará um nome de categoria no construtor. Temos que atribuir isso a essa variável. Agora, vamos cadafalso. Em seguida, AB bar. Nesse título. Vou dar esse nome de categoria em maiúsculas. Essas devem ser as cores do título e do plano de fundo. Kettler começa a ler. E então a etiqueta central foi tratada. Agora, o que queremos é que, quando clicarmos nisso, essa apresentação deve abrir. Então, vamos para a categoria de petróleo. E no tinteiro, temos que usar navigator, dot bush. Em seguida, meu Layout de página TDL, View Reveal e, em seguida, o nome produtos granulado. E então temos que enviar esse nome específico. Obteremos o nome dos dados do instantâneo e, em seguida, indexaremos. Vamos experimentar. Vamos ver o que acontece. Agora, quando vou para Categorias e clico em joias. Veja que essa alegria está lá no bar AB. Se eu clicar em eletrônica, a eletrônica está lá. Então, agora vamos simplesmente usar um futuro construtor dentro da página do produto da categoria. E eu logo após o nome corretamente. Ok, então no corpo, vamos ter um futuro construtor. Nan. Então, o futuro será o Serviço de Aplicativo, obterá o produto por categoria e, em seguida, enviará essa variável get the gritty name. E no construtor, teremos um contexto. Como sempre, acho que você vai aprender. Agora. A mesma coisa que estamos fazendo de novo e de novo. Talvez nunca contextos. E depois um único instantâneo. Vamos verificar. Se instantâneo que tem dados e retorna circular indicador de progresso circular. Fizemos isso mais do que, até esqueci quantas vezes fizemos essas coisas. Agora, se ele tiver os dados, usaremos um construtor de exibição de lista. Agora, essa interface do usuário desejará o mesmo que a interface do usuário inicial. Este construtor ListView. Essa categoria. Vamos transformar esse construtor ListView. E primeiro, vou verificar se tudo está correto aqui. Dados de ponto instantâneo, ponto, del, preço do índice do que esta tela do produto que vou importar. Ok, vamos dar uma olhada. Se houver algum erro. Quando clico em eletrônica, nada aconteceu. Vamos ver, ele tem algum erro ou erro? Produto por categoria? Bom, produto por categoria. Então temos essa função. Vamos reiniciar agora e depois verificar se ainda há algum erro persistente. Acho que não salvei o arquivo. Tudo bem. Mas veja isso mostrando agora, se eu for e joalheria apenas as coisas de joalheiro realmente estiverem lá e se eu clicar nele, esta página de detalhes do produto aparecerá. Então, está funcionando muito bem. E acho que nossa parte está pronta. Agora, quando pensamos em algum, você pode dizer que o aplicativo de comércio eletrônico definitivamente existe um carrinho de compras que não usamos aqui. Então, vamos ver esse documento de recursos. E aqui você pode ver que também podemos obter um carrinho, o que nos dará alguns produtos se enviarmos um ID de usuário. Então, por favor, reserve um tempo para ler esses documentos. Você aprenderá muito. Há muitos pontos finais. Mesmo. Estou usando alguns deles apenas para mostrar como isso é feito. Agora vamos implementar a página do carrinho. Em primeiro lugar, implementaremos uma função que receberá esse cartão. Então vou dar um nome, pegar o cartão. Ele aceitará um ID de usuário. E vou chamá-lo de buscar produtos de cartão. E então o ponto final é. Este cartão e, em seguida, o ID do usuário. Esse é o ponto final da API do carrinho. Portanto, como é uma API fictícia, precisamos usar detalhes do usuário já existentes em seus produtos automotivos. Não podemos inserir nossos próprios dados de verdade. Vamos pegar um ID de usuário de um para buscar que ele está simplesmente lembrando, o que quer que estejamos fazendo é apenas um dado falso. Eu gostaria, eu só quero que você entenda o conceito de HTTP e como buscar e exibir os dados na interface do usuário. É isso aí, nada mais do que isso. Agora, vamos criar uma página de tela de proteção. Ponto verde de Deus. Depois importe o material. Vamos ter um estado menos rígido da tela de cartas. Então, como você deve, nós teremos seu cadafalso. Então, nesse título. Certo? Você é. Deus, vai parecer profissional. Então alguns Ted são iguais a antes termos feito isso tantas vezes, acho que agora você tinha um especialista nessas coisas. Agora, no corpo, teremos alguns presididos a um construtor que aceitará se futuro receber cartão. E vou enviar um ID de usuário um, que eu já sei que está lá no fixo ou na API. Basta usar a documentação dessa API. Mais uma vez, se você não entendeu instantâneo que tem data center, esse é um indicador circular de progresso. Aqui. Por enquanto, estou lendo um texto de sucesso para que possamos obter esse resultado no console de depuração. Agora, obviamente, temos que navegar até a tela também. Então, na página inicial, vá para a barra de aplicativos e eu copiarei esse botão de ícone e cole-o. E agora isso será carrinho de compras. E essa página será a tela de guardas. Vamos dar uma olhada. Veja, nós temos esse cartão. Eu posso ouvir. Agora, se eu clicar no ícone do carrinho, essa resposta é essa. Isso nos dá uma resposta de 200. Ou seja, foi um sucesso. Temos o ID ID de usuário um. Então. Nossa principal preocupação é a chave de produtos mais fácil. Portanto, a chave do produto tem o valor de uma matriz, que consiste na ID do produto e na quantidade. Então, aqui estamos obtendo apenas o ID do produto. Portanto, temos que usar os futuros construtores para buscar os detalhes do cartão primeiro e depois buscar o produto. Definitivamente, queremos o nome do produto e a imagem do produto deste ID do produto. Então, vamos começar com isso. Simplesmente, escreveremos se instantâneo que tem dados, então teremos uma lista de produtos, que é, qual é essa chave, que é a chave do produto. Agora, usaremos o construtor List View. Exiba todos esses produtos. E na contagem de itens, vou usar produtos dot land. E no construtor de itens, usarei contexto e índice. Agora, a diversão começa porque, novamente, temos que usar um futuro. Porque agora temos que obter os detalhes do produto da ID do produto, o que já fizemos antes. Então, simplesmente temos que escrever APIs, pesquisas, ponto obtém um único produto. E então simplesmente vou usar esses produtos, depois indexar e depois esse ID do produto. Assim. Agora, novamente, terei contextos de Rick e, em seguida, vendo um instantâneo certo. Desta vez, vou nomear é um instantâneo de arco. E, novamente, temos que verificar se um único ponto de instantâneo tem dados. Desta vez, retornarei um indicador de progresso linear pela primeira vez. E agora vou ter um estilo de lista contendo todos os detalhes. Simplesmente no estilo da lista. Eu terei esse título primeiro e mostrarei que está funcionando. Cante dados de ponto instantâneo e, em seguida, título. Vamos verificar se está funcionando ou não. Traga seu aplicativo. E então, simplesmente se eu clicar nesse carrinho, C, C, temos os três itens que estão no carrinho. Essa lógica é um pouco complicada, mas você precisa pausar o vídeo e entendê-lo corretamente. No primeiro construtor futuro, estamos recebendo o carrinho. No segundo futuro construtor, estamos obtendo o nome da imagem do produto e um preço desse ID do produto. Na liderança, usarei a rede de pontos de imagem e, em seguida, simplesmente afundarei os dados de pontos da imagem. E depois imagem. Vou apenas dar uma altura de 40. Do que no subtítulo, vou escrever esse preço ou não o preço. Quero dizer, essa quantidade. Quanto eu pedi. Esse não sou eu, aquele dado falso da API. E é uma quantidade, então temos que mudar para string. E então, nesse final, terei um botão de ícone e o ícone será removido. Isso é produto atrasado. Estou construindo tudo isso para torná-lo mais, carregar muito mais aplicativos do mundo real e não apenas um aplicativo fictício. Vamos torcer para que tudo esteja funcionando bem. Traga seu emulador do que o código para o carrinho. E veja, está parecendo perfeito. Temos esse título, temos a imagem e também a quantidade. Então, isso agora está parecendo uma página de carrinho do mundo real. Só precisamos de um botão básico de pedido agora aqui. Podemos fornecer isso na propriedade de navegação inferior do andaime. Scaffold, em vez de usar o botão de ação flutuante, estarei usando, mas a barra de navegação. E aqui vou ter um contêiner. E então eu vou dar uma altura de 60. Peso do infinito de dois pontos, que é toda a largura. Cores verdes. E nessa criança terá uma região central do texto, que será, que temos na ordem certa agora. E então basta dar um estilo de texto. Cor, cores, branco, tamanho da fonte. Tamanho da fonte. Eu vou dar 30. Salve isso. E veja que esta página está parecendo melhor do que qualquer outro aplicativo que está aqui, esse aplicativo básico eu direi, porque temos nossas categorias, quando clicamos nela, temos os produtos. Veja, nós temos esses produtos. Se clicarmos em qualquer produto, o produto Dale está lá e esse erro é só porque a página não era rolável. Para resolver esse somador, podemos simplesmente acessar a tela Detalhes do produto. E aqui no recipiente, vou embrulhá-lo com eles. Visualização de rolagem de criança única. É isso aí. Veja, o erro desapareceu. Essas são as coisas básicas que você deve ter em mente ao criar um aplicativo que podemos esquecer. E haverá poucos dólares nisso, mas isso pode ser resolvido com muita facilidade. Com isso, essa parte das solicitações GET é finalmente concluída. Aprendemos muito. Na próxima sessão. Falaremos sobre como lidar com a solicitação de postagem. Então continue praticando. 6. Gerenciar o pedido do POST: Olá, bem-vindo a esta nova sessão. Até agora, estávamos discutindo sobre essa solicitação GET. Mas é hora de estudarmos os outros pedidos também. Porque, obviamente , agora temos os dados. Mas muito tempo estaremos impulsionando os dados também. Ou seja, também enviaremos dados até o que precisarmos usar a solicitação de postagem. Então, agora, como lidar com a solicitação de postagem? Já sabemos que é reduzido enviar dados para um servidor. Nós o usamos em cenários como fazer upload de um arquivo, enviar dados de um formulário. Em uma solicitação postal. Parâmetros adicionais, como cabeçalhos e corpos, também são enviados junto com a solicitação que contém nossos dados. Agora, em nossa API, temos esse usuário de login, que é o login e o ponto do usuário também, que é uma solicitação de postagem. E temos que enviar nome de usuário e senha. E como é uma API fictícia, precisamos enviar apenas esse nome de usuário e senha. Só então será bem sucedido e enviará uma ficha de doença. O que significa simplesmente, sim, as credenciais do usuário são reais, são válidas. Agora vamos às pesquisas da APA e aqui criaremos uma solicitação de postagem. Será simplesmente um futuro login de usuário. E então ele aceitará um nome de usuário e uma senha de string. Portanto, essa é uma forma muito profissional ou de escrever que você também usará em aplicativos do mundo real. Se eu quisesse, eu poderia ter escrito ou codificado diretamente a senha do nome de usuário aqui. Mas eu quero que seja muito mais dinâmico. Teremos um URL de login, barras de URI. E isso definitivamente estará lá no ponto de extremidade da URL. E depois disso, teremos arte e depois faremos o login. Ok? Agora é hora da novidade, que é a resposta. A resposta será x para o post p dot pela primeira vez, e ele terá nosso URL de login. Agora. Temos que enviar um nome de usuário e senha para essa parte. Então eu vou apenas dizer aqui, nome de usuário, nome usuário e, em seguida, senha, senha. Então é assim que enviamos. É isso aí. Não foi um grande problema, eu acho, porque também é um pedido em que simplesmente não fazemos nada demais. Temos nossa resposta e aceitaremos um URL, qualquer corpo. Agora, aqui, eu simplesmente escreveria vestido, títulos , pontos, código de status, e tudo deveria estar lá. Ok, desculpe, eu esqueci de usar await. Foi um erro muito tolo. Então, lembre-se de que quando estamos fazendo esse tipo de solicitação, esperar é muito importante. Portanto, agora usaremos o ponto de extremidade de login do usuário de login do APA. Ele retornará um token se for executado com sucesso. Agora que temos a função, é hora de criarmos a tela, que é a tela de login. É tão bom que nossa aplicação esteja sendo, pareça cada vez mais profissional e cada vez mais completa. Agora vamos ter uma tela de login. Em seguida, digitalize o telefone, a barra de aplicativos. Então vamos chamá-lo de loja da Flórida. Você pode nomear o que quiser. Só estou usando um nome aleatório. E então a cor de fundo será colorida a partir do X. E agora no corpo, terei um recipiente. Ele terá algumas margens de Duan De, livre do ponto de consulta de mídia do tamanho do ponto de contexto, largura do ponto e altura como quando toda a altura deve ser tomada. Ok? Agora, nessa criança, teremos uma coluna nesta matriz insulina masculina centrada e cruzar x é um elemento, bem como enviá-la porque eu quero que esses campos estejam no centro da tela. Portanto, teremos dois campos de texto, ou seja, nome de usuário, senha. Mas antes de tudo, eu posso, eu vou fazer disso a página inicial. Será a página inicial do nosso aplicativo. Agora, se eu atualizar, podemos ver que este é o teste de flores afiado. E agora, tela de login. Teremos, eu sou o controlador de edição de texto também. Quando nomearíamos controlador com edição de texto e aprender. E segundo controlador, quando falamos controlador. Agora, como eu disse anteriormente, temos que usar o nome de usuário e a senha fornecidos aqui. Então, vou apenas copiá-lo. E aqui nesse texto eu vou colar. E, novamente, copiarei essa senha aqui. E aqui fui eu colar a senha também, porque ela deve ser predefinida. Agora, nas crianças, vamos usar os campos de texto. Já sabemos como usar esse TextField, como decorá-lo. Isso não foi feito recentemente. Fizemos isso nas sessões anteriores. Terá uma decoração de entrada, rotulada, uso e nome. E então eu vou ter alguma fronteira também. Depois disso, terei uma caixa de tamanho. Digito D. E, novamente, terei esse campo de texto, que será uma senha. Agora, após o campo de texto, teremos um botão simplesmente no contêiner. Vou dar uma altura de 50. E livre da altura do ponto de consulta de mídia, que é toda a largura da tela. Discord no lugar daquela criança, eu vou ter um botão elevado. E nessa criança, vou simplesmente escrever login. E eu vou dar um pouco de estilo a isso. Um diz 25, peso da fonte com a bola. OK. Veja, temos nossa tela de login e está muito bonita. Se você quiser, você pode ter alguma imagem do logotipo aqui, depende de você. Então, simplesmente no botão elevado, vou escrever, vou chamar isso de nossa função de login aqui. Aguarde login do usuário do serviço de APIs. O nome de usuário escreverei o texto do ponto do controlador e a senha vou escrever texto do ponto do controlador de senha. Digamos nulla. Vamos verificar se está funcionando corretamente ou não. Se eu clicar no botão Login, vamos ver esse console, ver que é 200 e temos nosso token conosco. Portanto, como temos nosso token funcionando, o que queremos é que, se o usuário fizer login com sucesso, ele deverá ser enviado para a tela inicial, assim como qualquer outro aplicativo do mundo real. Então, esse token, vamos salvá-lo aqui nesta variável. E então verificaremos se token, ou seja, get token. E o valor do token não é igual a null. Porque se for chamado de nenhum, ou seja, estamos enviando alguns dados. Então, simplesmente escreveremos, se não for igual a nulo, ou seja, está correto. Você usará uma lanchonete para mostrar um feedback ao usuário que ele inseriu. Credenciais corretas. Simplesmente escrevemos o texto. Sucesso. E o ID do token do pátio é. E simplesmente imprimirei, imprimirei o token para o usuário assim. E vou dar alguns antecedentes que levaram a isso. Observe o verde, que é para salpicar lanche, mas estou dando essa cor de fundo. Agora, depois disso, o que eu quero é a lanchonete seja mostrada por dois segundos, e então navegaremos por isso. Por essa duração de dois segundos, eu tenho que usar esse futuro, a função delete para que ela leia o segundo, e depois nos navegue. Em seguida, navegue até a tela inicial. Layout da página Darian. E depois a tela inicial. E a página inicial. Assim. Vamos para a página inicial. E se esse token não estiver lá, ou seja, há algum erro. Então, novamente, mostraremos a lanchonete. Mas aqui, em primeiro lugar, você escreverá nome de usuário ou senha, incorreto. Nome de usuário, senha correta. E a cor deve ser vermelha. Nesse caso. Vamos verificar se está funcionando corretamente ou não. Primeiro arquivo, escreverei um nome de usuário errado hoje, removerei isso e clique em Login. Veja nome de usuário ou senha incorretos. Em nosso console de depuração também, temos uma mensagem como esta. Mas e se eu fizer isso correto? Em seguida, clique em Login. Temos essa mensagem de sucesso 2. Em segundo lugar, somos enviados para a tela inicial. Uau, está parecendo**** legal. E finalmente entendemos como usar essa solicitação de postagem também. Então, como estávamos enviando um dado no corpo da solicitação, era uma solicitação post. Portanto, você precisa se lembrar de quando usar solicitações GET, quando usar a solicitação post. Mas pelo menos temos esse aplicativo funcionando. Quando nos atualizarmos. Obviamente, ele chegará à tela inicial, mas agora você tem um aplicativo básico para mostrar aos seus amigos que você construiu algo do zero. Agora você não é iniciante, é intermediário na programação da Flórida. Espero que você tenha gostado até agora. Na próxima sessão, falaremos sobre as duas solicitações finais, que são solicitação PUT e uma solicitação de exclusão. Então, definitivamente, vamos gostar de trabalhar nesses recursos também. Em seguida, tente entender o código profundamente. Se você tiver mais dúvidas e tudo, por favor. Você também pode pesquisar no Google. Nosso pergunte-nos de forma gratuita e tudo. Mas, definitivamente, é um conceito muito importante. E enquanto você está cobrando APIs com o NodeJS MongoDB, então você precisa usar esses HttpRequest muitas vezes. Obrigada. 7. PUTAR e DELETE: Oi, bem-vindo de volta. Nos vídeos anteriores, aprendemos a usar solicitações GET e post. Neste vídeo, aprenderemos sobre a solicitação PUT. A solicitação é basicamente usada para obter os dados e o servidor. Portanto, nesta API de loja falsa, atualizaremos nosso cartão quando clicarmos no botão Adicionar ao carrinho. Ou seja, quando clicamos nesse botão, algum código deve ser executado. Mas lembre-se, é uma API falsa, então nada será atualizado para você. Podemos apenas ver a resposta que o console está em conformidade. Basta acessar a API da loja de aberrações, depois detalhes sobre cães. Aqui você pode obter todas as APIs compatíveis. Eu vou entrar e clicar nisso, atualizar o cartão. E agora aqui você pode ver o método colocado e temos que enviar saudações, ID do usuário, data e os produtos. E os produtos são se isso é coleção, ou seja, lista de mapa contendo o ID do produto. É isso aí. Então, sim, você pode usar ou corrigir o que quiser. Eu vou usar para que isso seja executado. Vamos simplesmente acessar nosso arquivo ponto ponto ponto de serviços de API. E aqui estarei criando uma solicitação PUT. Então vamos criar um cartão de data para o almoço. Será uma função sinc. E agora ele aceita um ID de usuário e um ID de produto. Ok? Depois disso, teremos esse URL. Como sempre. Vou chamá-lo simplesmente atualizar o URL. E o URL será cartões de barra e um ID de usuário. Então, assim como o ID do usuário. Ok, vou fazer isso d pequeno d. Depois disso, eu tenho que criar as funções que são uma resposta e depois esperar. E agora vamos usar o ponto de venda STDP. O URL será URL de atualização. E então o corpo será um mapa. E agora eu tenho, temos que enviar as chaves, esses ID de usuário. Será uma corda. Lembre-se aqui, cada chave terá um valor de string. O que quero dizer com isso é que vou te mostrar e depois namorar. Vamos apenas escrever data, hora, ponto, data e hora, ponto, ponto para string. Então, temos que converter essas coisas em string. E depois produtos. E será uma lista, ok? Lista do mapa. E aqui vou simplesmente escrever aqui ID do produto, ID do produto e a quantidade d t. Vou apenas codificar como um. E então faça essa string de lista para funcionar. Agora, como sempre, basta imprimir o código de status da resposta. E então imprima sim amarra o corpo. E depois disso, retornarei JSON decode response.body, mas não faremos nada. Estou apenas criando a função para que você entenda como fazer isso quando tiver uma API em tempo real. Agora temos a função ativada. Vamos aos detalhes do produto. Aqui. No botão de ação flutuante. Aqui vou simplesmente fazer uma pia com um peso. Eu serei uma coisa. Serviço Apa, cartão de atualização de ponto e ID de usuário. Eu saberei que enviarei um, já que está codificado. E então esse ID do produto é esse ID. Estou enviando esse ID também. Depois disso, podemos apenas ter um susto, cair, cair, o mensageiro dos contextos, show de pontos, lanchonete. E depois lanchonete. Você pode simplesmente escrever o produto adicionado ao carrinho. Então, esses são apenas comentários falsos. Mas o código da solicitação HTTP é real. Vamos trazê-lo para fora. Agora, quando você for para esta tela de jaqueta, quando clico no botão Adicionar ao carrinho, veja o produto adicionado ao carrinho. Na saída, você pode ver ID, ID do usuário, data e um produto que é ID, ID do produto é três. Enviamos três. É por isso que isso significa que nossa solicitação PUT está funcionando perfeitamente. Imagine que seria um dado real e estamos apenas atualizando esses dados no servidor. Dados. As solicitações finais que discutiremos são a solicitação de exclusão. Portanto, a solicitação de exclusão é usada para excluir esses dados no servidor. Então, aqui vamos deletar nosso cartão. Vamos fingir que excluímos nosso carrinho quando clicarmos no botão Remover na tela do carrinho, que é esse botão. Esse botão. Quando clicamos nisso, devemos apenas receber o feedback. E, como sempre, é uma API falsa. Nós apenas veremos a resposta no console. Portanto, crie uma solicitação como uma solicitação atrasada e atrasada do que simplesmente uma função de cartão atrasado. Em seguida, string ID do usuário. Então, vamos apenas obter o ID do usuário e excluir o cartão dele. Só estou tentando fazer você entender. Sei que não faz sentido trabalhar apenas com APIs falsas. Mas confie em mim, isso vai te ajudar muito. Agora. Só precisamos obter esse mesmo URL. A única diferença serão as solicitações HTTP para aqui, apenas escreveremos a resposta é igual a aguardar http ponto atrasado, URL do cartão atrasado. Então é isso que devemos fazer. E depois disso, simplesmente escrevemos resposta, código de status. Imprima a resposta do corpo e retorne json dot d code response.body. Agora, na API de pedido fixo, você pode ver que esta é uma página de carrinho atrasado. E aqui o URL é como este carrinho e o ID do usuário, e só temos que enviar a eles meu terço de atraso. E, em seguida, na saída, obteremos os produtos de data de identificação do usuário. É isso aí. Vamos experimentar. Vamos para a página da tela do cartão. E então, nessa trilha, temos isso em louvor. E aqui vamos simplesmente escrever um serviço de APIs de peso Dot, Delete Cut. E então enviaremos apenas um ID de usuário de um. Como seria um aplicativo real, você pode estar obtendo o ID de usuário do Firebase ou onde quiser. E depois disso, teremos apenas um mensageiro de andaime e simplesmente mostraremos uma lanchonete. Basta mostrar uma lanchonete. Ter o conteúdo como item excluído com sucesso. É isso aí. Vamos experimentar. Isso funciona ou não? Agora vá para a tela do cartão. E agora vou limpar o console. E agora, quando clico nesse botão excluir, veja o item excluído com sucesso. E temos esse ID do item, ID do usuário, data e esses outros produtos, consulte 61. Então, adicionamos o cartão certo à frente. Eu só queria implementar uma função de exclusão e fazer você entender como ela está funcionando. Eu sei aqui que todo o carrinho está sendo excluído, mas devemos remover um produto nesse caso. Espero que você tenha entendido. Você precisa atualizar esse cartão. Ou seja, se eu remover isso no servidor, basta remover esse produto desse item da lista. Depende de você. Mas pelo menos você deve conhecer o conceito e como escrevê-lo corretamente. Tão alto, espero que tenham gostado desse vídeo. Falamos sobre toda essa solicitação, seja GET, post, PUT, delete. Então, no próximo vídeo, finalmente discutiremos sobre a solicitação autenticada. E esse será o vídeo final do nosso módulo HTTP. E Q. 8. Faça solicitações autenticadas: Oi, bem vindo de volta. Nesta sessão, falaremos sobre como fazer solicitações autenticadas. Então, até agora, estávamos usando uma API que podíamos acessar diretamente e não requer nenhuma chave de autenticação. Mas esse não é o caso na maioria das vezes quando estamos criando aplicativos. Para buscar dados de muitos serviços da Web, você precisa fornecer uma chave de autorização ou autenticação. Há muitas maneiras de fazer isso, que discutiremos agora. Agora, a primeira maneira é esse método básico de arte, autenticação básica significa que o aplicativo cliente envia o nome de usuário e a senha para o servidor nas solicitações HTTP. Então, simplesmente quando tivermos um nome de usuário e senha, usaremos uma arte básica. E o disco também pode ser feito de duas maneiras. Ou temos que enviar esses detalhes no parâmetro body ou a outra maneira é codificar essas credenciais com UTF-8 e depois passá-las no parâmetro headers. Vamos fazer a primeira coisa que é, quando enviamos esses detalhes no parâmetro body, basta exibir seu arquivo de serviços da API. E vamos criar uma função chamada autenticação de usuário. E agora aqui temos um nome de usuário e uma senha de string. Agora não temos nenhum URL no momento. Estou agora mostrando a você o código do curso de pato que é como fazer isso. Porque definitivamente você pode ter uma API, como outro servidor da AWS ou um servidor NodeJS ou qualquer outra coisa. Só estou usando uma coisa falsa. Isso é api dot em algum lugar, I0, seja o que for. Não faz nenhum sentido. Agora, a questão é o importante está aqui, é a resposta. Agora, quando escrevemos, a resposta é igual a await http dot. Quando estamos enviando esses dados no corpo, não podemos ter uma solicitação get. Sempre temos que usar a solicitação postal. Então só nós podemos enviar o parâmetro do partido. Agora no corpo, vou simplesmente usar esse nome de usuário, nome usuário e senha, como essa senha. E depois disso, como sempre, você pode imprimir a resposta. Só estou dizendo de novo que aqui não estamos usando nenhuma API. Eu só quero mostrar o código como autenticar o STDP também, porque tudo será o mesmo que fizemos antes. A única diferença é que usamos esse parâmetro de festa. Então, imagine que este é o seu servidor NodeJS e estamos enviando a senha do nome de usuário para autenticação. Essa é uma das artes básicas. O segundo é enviar os detalhes usando o cabeçalho de autorização que podemos fazer. Simplesmente assim. Ok, eu apenas criaria outra função para que você se lembre do usuário ou terceiro IgG e eu apenas escreverei a sessão. Agora, vou remover essa coisa do corpo. E como não estamos usando body, também podemos fazer uma solicitação GET porque estamos enviando esse detalhe por meio de cabeçalhos. Agora temos a primeira codificação, esses detalhes como esta arte básica. Então, a primeira coisa será essa palavra-chave básica. Depois disso, teremos a codificação base 64. E por dentro vou escrever oito pontos da UDF código de oito pontos da UDF. E aqui você escreverá seu nome de usuário e senha. Simplesmente. Nome de usuário e senha. Esse código, você deve se lembrar que esse básico é o prefixo que usaremos. Há outro prefixo que usaremos em apenas alguns segundos. Mas é assim que temos a chave de autorização que codifica. E então, nessa solicitação GET, basta escrever cabeçalhos. Em seguida, use o mapa. E a primeira chave que você usa é o tipo de conteúdo. Será o aplicativo Jason. E a segunda é a autorização. É disso que estamos falando. E ele terá essas credenciais básicas. É isso aí. É assim que é feito. Portanto, essa é a maneira de enviar nome de usuário e senha e também não apenas nome de usuário e senha. Pode haver alguns sites ou APS que solicitaram o envio do código da API aqui. Ou seja, nem sempre é necessário usar esse tipo de nome de usuário e senha. Também depende da API com a qual você está trabalhando. Agora. Primeiro foi a arte básica. Agora, o segundo é a cerveja. A autenticação da cerveja significa simplesmente que precisamos autenticar usando um token em vez de um nome de usuário e senha. Agora, se você tiver um token, essa API especifica que você precisa usar esse prefixo beer. É assim que é feito. Nada demais. No Lee. Na autorização. Você tem essa cerveja para palavra-chave e esse valor simbólico. É isso aí. Isso é acesso para conservar pose. E imagine que aqui temos esse token de acesso. Algum valor para transmitir. Você pode dizer algum valor simbólico, é isso. Então é assim que você usa essa arte melhor. Só estou dizendo isso de novo. Se você tiver uma API que tenha sua própria chave de API, altere a chave de autorização para essa chave específica. Às vezes, algumas APIs dizem que no cabeçalho a chave deve ser assim e, em seguida, o valor do token. Portanto, você precisa ler a documentação dessa API com muito cuidado para não cometer nenhum erro. Mas lembre-se do código aqui. Isso é feito na maioria das vezes quando estamos fazendo qualquer tipo de autenticação. Eu sei que você pode estar perguntando, ok, mas não havia uma API real. Então, estou apenas mostrando alguns exemplos. Primeiro, você pode ir e experimentar esta API de notícias ponto ORG. Ele lhe dará todas as notícias mais recentes e tudo mais. Você pode obter a chave de API aqui e ler a documentação sobre como usar essa API para se autenticar. A segunda chave de API que você pode obter é essa OMB DAPI. Basta clicar nessa chave de API e escrever seu e-mail aqui e enviar. Dessa forma, você obterá sua chave de API e poderá começar a acessar diretamente todo o banco de dados de filmes a partir daqui. As outras APIs ou se um par aqui também pode obter o EPI por si mesmo. E essas são as APIs que fornecem uma API de clima atual do Cali PA. Veja assim. Portanto, só temos que ler a documentação corretamente e experimentá-la por conta própria. Nesta pandemia, se você quiser, você também pode obter a API de rastreamento COVID , onde você obterá todos os dados relacionados ao COVID-19 em todo o mundo. Com isso também, você pode criar seu próprio aplicativo. Então, espero que você tenha gostado desta sessão. Se quiser, basta tocar aqui e experimentar por conta própria. Tente cometer tantos erros para que, no final, você se torne um desenvolvedor melhor. Obrigada. 9. Por que precisamos de modelos: Oi, bem-vindo de volta. Neste módulo, falaremos sobre quais são nossos modelos e por que precisamos exatamente disso. Model é apenas a classe usada para representar determinados dados. Qualquer aplicativo funcionará com vários tipos de dados, obviamente, usando modelos, é mais fácil chamar os dados e passá-los pelo aplicativo. Então, se você se lembra dos exemplos anteriores, o que fizemos foi passar dados de uma tela para outra diretamente. Esse é o mapa em si ou a perna de valor do mapa que estávamos passando. Mas na aplicação real, os dados provenientes do servidor terão uma estrutura complexa. E não conseguiríamos lembrar a chave de todos os dados. É por isso que usamos modelos. Ao ouvir esse exemplo, você pode ver como criamos nossos modelos. Suponha que tenhamos os dados de um usuário. Então criamos um usuário de classe e Dan dove, os valores que ele existe, ou seja, todos os dados que estão dentro do usual. Você deve ser escrito assim na forma de variáveis de instância, como int final, id, nome final da string. Então, um construtor deve estar lá para que possamos passar o valor e ele será atribuído a ele. E essa função de fábrica nada mais é que uma maneira de transformar esses dados, mapear dados vindos de fora. E então retornando um objeto dessa classe. Em palavras simples, do Firebase ou da API, obtemos dados mapeados que podem mapear dados. Enviaremos aqui, que é usuário do Jason. E então ele retornará um objeto. É isso aí. Então, esses são os termos que usamos geralmente ao trabalhar com modelos. Isso é serialização e desserialização. Serialização é converter em objeto inteligente em Jason. E a desserialização é para converter objetos de dados JSON. desaceleração é o que faremos na maioria das vezes. Ou seja, os dados que chegam nesse formato JSON ou mapa serão convertidos em um objeto escuro. Eu sei que pode ser, você pode estar se sentindo sobrecarregado com esse conceito, mas é muito fácil de fazer quando você pega o jeito. Então, aqui precisamos criar uma classe para lidar com a desaceleração. E é chamada de classe modal. Então você pode estar pensando, ok, mas sem modelos também, fomos capazes de realizar nossa tarefa. Ou seja, esse aplicativo estava funcionando perfeitamente. Então, por que precisamos de modelos exatamente para nossa aplicação? Então veja este exemplo. Aqui temos esses dados no nome do formato do mapa, ID do usuário, e-mail. As representações acima representam dados de usuário muito básicos. Podemos ver que percebemos que a string JSON usando essa biblioteca de conversão de dardo como estávamos fazendo anteriormente. E isso o torna um valor de string e retorna o valor do mapa. O valor então pode ser acessado da seguinte maneira. Ou seja, depois de decodificar a string JSON, depois disso, podemos simplesmente imprimir hi e, em seguida, usuário e nome de usuário, ou seja, o nome é a chave disso. Mapa do que e-mail é outra chave e IDs de usuário e outra chave. Então isso é o que estávamos fazendo antes. Agora, vamos estudar qual é o problema dessa abordagem. Infelizmente, a decodificação JSON retorna um mapa, significa que você não conhece esse tipo de valores de dados até o tempo de execução. Então, aqui, e-mail ou esse ID de usuário é um número inteiro que não sabemos até e a menos que o imprimemos aqui. E se estiver mostrando algum erro ou algo assim. Com essa abordagem, você perde maioria dos recursos de linguagem digitada estaticamente. Isso é segurança de tipo, preenchimento automático e, o mais importante, exceções em tempo de compilação. Então, tempo de execução, tudo bem, entendemos. Mas compilar o tempo enquanto escrevemos o código. Então também não vai aparecer nos dá nenhum erro. Mas quando estamos usando modelos, isso nos diz que é um número inteiro. Não use string ou qualquer que seja a exceção, é. Essa não é uma boa prática. Por exemplo, sempre que você acessar os campos de nome ou e-mail, também poderá introduzir rapidamente um erro de digitação. Já que suponha que aqui seu nome odeie e-mail. Pode ser E, dash mail ou qualquer outra coisa. Aqui está o ID do usuário, é capital. Podemos escrever pequeno. Esse tipo de erro é muito comum quando estamos programando. Então, para combater esses problemas, os modelos entram em jogo e definimos estritamente o tipo de valores como este. Aqui nós o definimos estritamente. É um número inteiro, é uma string. Portanto, é assim que estamos em um lado mais seguro ao criar um aplicativo. E isso eventualmente torna o código menos propenso a erros, pois a maioria das áreas é tratada durante o tempo de compilação. Espero que você tenha entendido por que precisamos de modelos e talvez não tenha entendido como criá-los, mas não é um problema. Na próxima sessão, criaremos nosso primeiro modelo. Obrigada. 10. Criando nosso primeiro curso de modelo: Oi. Nesta sessão, criaremos nossa primeira classe de modelo. Então, antes disso, traga seu Código VS. E eu emulei. Se eu pressionar em qualquer produto que não seja no console de depuração, você poderá ver que todas as propriedades são dados que ele possui. E com relação a isso, temos que criar nossa classe de modelo na pasta leaf. Vamos criar uma nova pasta chamada modelos. E dentro dele, vamos criar um arquivo ponto ponto do produto. Para criar um modelo de vidro. Primeiro, crie uma classe chamada product. E agora insira Alda, todos esses dados como variáveis de instância. Ou seja, direi tinta final, ID, depois string final, título e depois subir. É um pouco complicado aqui, então é o dobro. E também não estou usando nenhum tipo de dados. Depois disso, podemos ter a descrição final da string, depois a tela final, a string, sorry, a categoria e, em seguida, a imagem final da string. Então, sim, esses são os dados que um produto terá. Agora, depois disso, crie um construtor. Para o mesmo. Agora eu tenho que escrever obrigatório. Em seguida, esse ponto é necessário ter um título de ponto obrigatório. Esses raios, essa descrição, esse ponto obtém grau, essa imagem. Então, agora temos nossa classe de modelo de produto. Ele tem todos os dados. Agora temos que criar uma função que aceitará Jason como entrada e, em seguida, retornará esse objeto de produto. Agora, para criá-lo, basta escrever um produto do Jason. Em seguida, ele aceitará valores dinâmicos de string chamados Jason. Vou apenas escrever JSON. Em seguida, ele simplesmente devolverá um produto. Agora no produto, em breve teremos o ID do produto. Então eles dizem que Jason BJ descrição de Jason BJ, isso não é corrupção. Então obtenha um diploma, grau Jason. E então, finalmente, temos imagem. Então veja, essas são todas as chaves que já foram mencionadas ainda nesta imagem de descrição da categoria de preço. Agora, quando chamarmos essa função, enviaremos esses dados aqui e isso nos dará um objeto de produto. É isso aí. Criamos com sucesso nosso primeiro modelo. Agora. Para usá-lo. Temos que acessar nosso arquivo ponto de serviços de API. E é hora de fazermos as mudanças necessárias na função. Saiba que existem muitas funções e vamos começar com isso, obtenha todas as funções de postagem aqui. Em primeiro lugar, vou apenas dar um tipo de retorno. Da lista de produtos. É isso aí. Então esse é o tipo de retorno. Agora, simplesmente, criarei uma lista vazia no início dos produtos, nomeiarei todos os produtos e ela ficará vazia. Agora, vou fazer com que esse corpo decodifique Jason Dodd em uma variável aqui. E vou dar uma olhada nessa coisa do Jason que é todos os produtos. Vou dar uma olhada e obter um produto específico aqui. E simplesmente, em todos os produtos, adicionarei o produto do Jason e enviarei aqui o JSON. É isso aí. E no final, vou devolver todos esses produtos, ou seja, lista de produtos. Então, o que eu fiz aqui foi antes de tudo, eu criei um array vazio, que passaremos no final. E conterá o objeto do produto, será a lista do objeto do produto. Agora, esses Jason response.body estarão no formato JSON, na lista do formato JSON. Então, vamos simplesmente percorrer e adicionar todo o produto depois de convertê-lo por meio disso. Esse é o produto que da JSON está dentro desta lista de produtos e retornou todos esses produtos. Depois disso, temos que fazer as alterações na tela inicial de onde ela está sendo exibida. Aqui, onde estamos obtendo os produtos. Portanto, esse instantâneo assíncrono nos dará agora um objeto, não um objeto, será uma lista de produtos. Então, primeiro de tudo, o que vou fazer é simplesmente criar uma variável que conterá os dados do índice. Esse é um único produto aqui. Já que está percorrendo todo o instantâneo, ele nos dará um único produto aqui. E depois, simplesmente temos que escrever o título do ponto do produto assim. Então, é tão simples. Produto, imagem, produto, o ponto de preço toString. E então, no final , vou escrever o produto, ID do produto. Assim. Vamos verificar se está funcionando ou não. Eu reiniciei o aplicativo, mas antes disso, você pode ver como é fácil agora gerar o valor. Não precisamos escrever a chave de novo e de novo, podemos usar diretamente esse operador de ponto e obteremos os dados. Consiste. Agora, quando eu clicar neste botão de login, aqui, você encontrará todos os dados que já estavam lá anteriormente, mas agora estamos usando modelos aqui. Portanto, esta é uma explicação mínima dos modelos e por que a usamos. E confie em mim, quando você tem muitos dados, os modelos serão muito úteis para você. No próximo vídeo, usaremos modelos para detalhes do produto e outras páginas também. Obrigada. 11. Mudanças necessárias no frontend: Oi. No último vídeo, fazemos essas alterações na tela inicial para que possamos obter esses dados da API e alterá-los adjacentes à nossa classe de modelo, ou seja, os modelos do produto menos. Portanto, agora nesta sessão, faremos as alterações necessárias na também faremos as alterações necessárias na função de um único produto. Para devolver o modelo. Traga seu editor VSCode e vá para pesquisas APA ponto nove. Isso obtém a função de um único produto. Simplesmente, não retornaremos um JSON. Em vez disso, vou manter esses dados em todas as lojas, esses dados em uma variável chamada potty. E então eu vou simplesmente virar ponto do produto de Jason e passar o corpo nele. Então, ele retornará um único objeto de produto. E é disso que precisamos. Ok? Agora, definitivamente, se tivermos feito a alteração em um único produto, teremos que ir para a tela Detalhes do produto também. Faça as alterações para usar um modelo. Em vez dessa coisa do Jason. Temos nosso futuro construtor aqui. Estamos adquirindo o modelo que é o modelo do produto. Neste instantâneo. Aqui, simplesmente escreverei esses tipos de dados produto e os armazenarei nos dados de pontos do Snapshot. Ok? Agora temos esse produto aqui e simplesmente removerei tudo aqui. E eu trouxe a imagem do ponto, depois o preço do produto do que a categoria do produto ponto do produto. E, por último, a descrição do ponto do produto. Assim, você pode ver por si mesmo que é muito mais fácil e organizado quando estamos usando modelos. Porque, definitivamente, ao escrever o mapa, que é Jason, podemos cometer algum erro nessa chave que esses erros de ortografia ou o que quer que seja. Então é melhor se usarmos modelos. Vamos testar isso. Está funcionando corretamente ou não? Quando clico em Login, vamos para a tela inicial. E se eu clicar neste produto C, não há erro. Eu fiz isso mudar, mas está funcionando perfeitamente. Então você pode estar pensando, ok, nosso trabalho aqui está feito. Mas se eu clicar neste botão do cartão, você verá esse erro porque também esquecemos a tela do cartão de índice. Temos que fazer essas mudanças, pois também está usando essa função. Isso obtém um único produto aqui. Então, da mesma forma, temos que fazer a mesma coisa aqui. Vou usar esse tipo de dados do produto. E então sincronize os dados de pontos do instantâneo. Ok? E então simplesmente escreva aqui, ponto do produto, imagem do ponto do produto. Então aqui essa quantidade, está tudo bem porque estamos recebendo essa quantidade daqui. Portanto, não precisamos mudar isso. Mas tudo bem, eu tenho check node, não há outra coisa a ser alterada. Vamos ver nosso aplicativo novamente. Se estiver funcionando bem ou não. Eu clico no login. OK. Estamos na tela inicial. Agora, quando clico no cartão, vejo que não há erro. Agora, porque aqui novamente, estamos usando modelos em vez de mapas ou dados brutos do Jason. É isso aí. É assim que devemos usar e implementar modelos. No próximo vídeo, falaremos sobre algumas outras ferramentas que nos ajudarão a criar modelos facilmente. Obrigada. 12. Ferramenta para gerar modelos facilmente: Oi. Então, até agora v, estamos criando nossos modelos por conta própria. Então aqui, suponha que neste produto, foi fácil porque havia apenas quatro variáveis ou dados. É por isso que fizemos tudo isso sozinhos. Mas muitas vezes, quando estamos usando APIs, haverá dados que são muito complexos. Então, nesse cenário, podemos precisar de algumas ferramentas que nos ajudarão a construir nossos modelos facilmente. No mercado, existem poucas ferramentas disponíveis apenas para tornar essa tarefa muito mais fácil. Existem duas abordagens. Uma é usar uma ferramenta on-line e a outra abordagem é usar dependências. Então, aqui você pode ver que temos uma dependência chamada JSON serializable. Isso você pode usar se quiser. Definitivamente, muitas pessoas usam isso. Vou apenas mostrar a você Jason serializable. Ok, e então eu vou ouvir que eu empacotar. Veja, este é o pacote do qual estou falando. Isso é chamado Jason serializable. Se você quiser, você pode usá-lo definitivamente, você encontrará muitos recursos sobre como usá-lo. Mas nesta sessão, usarei essa ferramenta online chamada app quick type.io. Isso também é perfeito. Ambos são muito usados. Então veja se eu simplesmente escrevo tremulou nosso dardo Jason para modelar. Então aqui você vai conseguir os dois. Ok, eu acho. Sim, isso é instantaneamente analisar json em qualquer idioma. Está bem? Temos isso aqui. E para fazer isso praticamente, vou usar um APA diferente. Anteriormente, estávamos usando essa API de loja falsa. Mas agora eu não quero usar essa API porque já sabemos que os dados estão fornecendo. Então, eu vou usar este frutado vice.com. É um serviço da web que fornece dados para todos os tipos de frutas. É uma API gratuita. É por isso que estou usando. E aqui você pode ver todos os pontos finais. Isso permite. Assim, podemos obter esses dados de uma fruta específica como essa. E também podemos obter todos os frutos desse ponto final, ou seja, APS slash fruits slash on. Esse ponto final nos dá uma lista desses dados do mapa contendo todas as frutas. Portanto, sem perder mais tempo, gostaria de mostrar como usar este aplicativo quick.io para criar modelos. Então, aqui vou simplesmente escrever apple e digitar enter. Isso nos dará a estrutura de dados assim. Aqui você pode dizer que não é muito complexo, mas essa string KEY, o valor é string, string, isso é um inteiro, mas essas nutrições são novamente um valor de mapa que contém chaves de string e duplo como valores. Então, vou simplesmente copiar essa estrutura e ir para o tipo rápido de ponto do aplicativo e colá-lo aqui. Mas antes de colar e lembrar do seu idioma, você precisa usar o Dart. E então vou simplesmente remover tudo aqui, colar no nome. Você tem que escrever esse nome de fruta. Você e não precisa, você pode adicionar o que eu quiser. Mas como são dados de uma fruta em particular, estou lendo. Está bem? Agora, na saída, você vê que temos esse modelo aqui. Isso, muita coisa foi feita automaticamente ou então, tivemos que escrever tudo por conta própria e isso não é viável o tempo todo. Simplesmente, o que farei agora é copiar tudo, copiar todos esses dados e acessar nosso Código VS. E dentro da pasta de modelos, vou simplesmente criar um modelo chamado Fruit dot dot e colar tudo aqui. Então você pode estar dizendo que nesta era, isso é só porque os dados aqui não são nulos, assim. E como é obrigatório, temos que simplesmente escrever a palavra-chave necessária para que esse erro desapareça. É isso aí. Então a nutrição também, temos que colar e a Alda adicionada agora está corrigida. Então, se você olhar na aula de hoje, a única coisa necessária é isso. Esses são os dados ou as variáveis. Então, por meio desse construtor, estamos aceitando isso de Jason. Já fizemos isso no produto. Por quê? Quando estávamos usando a API fixa ou a API, ela está sendo criada automaticamente. Essa coisa de Json está apenas criando um adjacente esses dados no formato JSON e é de Jason cria os dados neste formato de modelo. E agora você deve estar pensando por que existem duas classes diferentes, aula de nutrição também. Só porque o valor desses nutrientes é novamente um mapa. Então, tudo o que temos no mapa será novamente convertido em uma classe. Portanto, essa nutrição tem carboidratos, proteínas, gorduras, calorias, Hoover, esses valores nela. Então, novamente, esta é uma aula e confie em mim, isso vai nos ajudar muito porque agora todos esses dados têm seu tipo de dados intacto. Portanto, não cometeremos nenhum erro com a dose. E se você quiser ver qual resposta obteremos assim, você pode simplesmente ir e fraldas.com.br assim e simplesmente escrever, essa é a resposta com a qual estaremos lidando. Você pode estar sobrecarregado agora, mas confie em mim, isso é só, esses dados são apenas um dado. E depois disso, está sendo repetido com frutas diferentes e diferentes. É isso aí. Então, aprendemos como criar nosso modelo JSON. Sem coração, sem digitar tudo por conta própria. Eu costumo usar esse tipo de ferramenta on-line porque ele faz o trabalho muito rápido e não precisamos nos preocupar com os tipos de dados e, se é alguma coisa, se há algo errado nisso. Portanto, no próximo vídeo, criaremos nossas funções no arquivo saw dart dos serviços da API para buscar todos os dados de frutas e mostrá-los em nosso aplicativo. Obrigada. 13. Consumir um novo api de descanso: Bem-vindo de volta. Então, agora temos nosso modelo pronto. Está na hora. Criamos uma função em nosso arquivo ponto ponto ponto de serviços de API. Para que, como anteriormente, possamos buscar as frutas, todos os dados das frutas. Então, simplesmente desça e faça um comentário sobre como obter frutas. Então, simplesmente, teremos uma função futura chamada get on fruits e definitivamente ela ganhará como função sinc. Em seguida, teremos a variável de URL de frutas. E aqui analisaremos nosso URI, que é URL, que está aqui. Desculpe, sim. Que será essa API slash, frutas cortam este aqui. Basta ir e colar. Estou usando esse refrigerante API grátis. Não preciso criar as chaves de API da conta com esses dados nulos. Mas você, eu já te ensinei como fazer uma solicitação autenticada também. Então, se você quiser, você também pode tentar com outras APIs. Então, temos essa resposta aqui. Simplesmente que é o ponto p get. Em seguida, no URL da fruta. Assim. Então, o que vou fazer é simplesmente criar uma variável de festa. E Jen, aqui vou escrever código json dot d para que ele possa ser convertido uma string desse corpo de resposta em um mapa. É isso aí. Isso é apenas o trabalho dessa decodificação de pontos json. Ele converte uma string em um formato JSON. É isso aí. Agora aqui. Anteriormente, o que fizemos foi criar uma lista de variáveis de produto e depois atribuí-la a um array vazio. E então, simplesmente, usamos esse loop for e adicionamos todos os dados. são esses dados únicos nisso. Mas agora vou mostrar uma maneira diferente de fazer a mesma coisa. Ele só faz o trabalho em uma linha, aquela frente de estudo. Vou pegar essa lista de frutas. Vou nomear todas as frutas. Então vou simplesmente escrever um mapa de pontos da festa. Vou pegar uma fruta em particular aqui. E então, e eu vou enviá-lo através dos dois dias da função JSON. Ok? E simplesmente, finalmente, vou criar, vou fazer tudo para uma lista. O que está fazendo é mapear através do corpo, essa é essa resposta. E, em seguida, convertendo todas as formas que estão adjacentes ao objeto de frutas e depois devolvendo-o. Isso significa que ele está devolvendo. E, finalmente, tudo depois disso é feito, esse mapeamento está feito. Tudo será convertido em uma lista. É isso aí. E simplesmente devolverei todas as frutas aqui. E essa função, darei a ela essa lista genérica de frutas de tipos de dados para que saibamos o que está retornando. Ok? Então essa parte está pronta. Nossa função está pronta. Agora é hora de criar uma nova tela para que possamos mostrar esses valores para o miniaplicativo no aplicativo. Vou simplesmente nomear todas as frutas ponto, ponto. Agora, como sempre, importe material. Então, cada classe de lista estadual de eu vou chamá-la de tela de frutas. Agora ele retornará um andaime no aplicativo. Vamos dar uma elevação de 0. Cor de fundo das cores ponto organizar x. E desta vez, darei todas as frutas. E então o centro que eu desenhei naquele corpo. Vamos ter um futuro construtor. Espero que agora você esteja muito confortável com esse tipo de código, porque estamos fazendo isso há muito tempo. Estou usando serviços de API e, em seguida, recebo todas as frutas. Simples assim. Esse construtor terá um contexto e um instantâneo. Ele estará em um único instantâneo. Então eu vou verificar. Se o DOD do instantâneo tiver a pomba. Caso contrário, retornarei um indicador circular de progresso. E se tiver dados, retornarei no construtor de pontos de exibição de lista. Agora, a contagem de itens será ponto instantâneo, ponto, ponto, comprimento. E o construtor de itens terá desaparecido, textos e índice. Então, agora aqui vou criar uma variável, um tipo float e armazenar esse valor de instantâneo em um instantâneo de dados de ponto e, em seguida, no índice. Então, será esse produto singular. É isso aí. E então eu vou devolvê-lo, vou devolver um cartão. E dentro dela, terei uma propriedade filho e, em seguida, o orçamento de estilo de lista. Então, nesse título, terei um centro e depois a criança, que nos mostrará o nome da fruta, que é o nome do ponto de comida. Tão simples quanto isso. Só por causa dos objetos, agora somos capazes de gerar ou usar nossas variáveis com tanta facilidade. E então, no subtítulo, gostaria de mostrar todos os valores nutricionais, ou seja, proteínas, carboidratos e gorduras. Simplesmente, terei um widget de texto. Ele escreverá altas taxas de papelão. E agora vou concatenar esse valor da fruta. E depois um ponto, depois nutrições, depois pontilhe e veja. Agora eu posso simplesmente usar carbonetos daqui só porque ele está salvo em outro objeto. Ou então eu tive que usar esses carboidratos essenciais e definitivamente vou cometer o erro aqui. Vou simplesmente copiá-lo e colá-lo duas vezes. O segundo será a proteína. Será simplesmente proteína. E o terceiro será as gorduras. E será simplesmente gordo. É isso aí. Agora, na linha, darei um alinhamento do eixo principal do espaço de pontos de alinhamento principal uniformemente, apenas para torná-lo bonito. Agora, para testá-lo, temos que ir ao nosso arquivo ponto ponto principal. E em vez desse arquivo de login, temos que escrever essa tela de frutas. É isso aí. Vamos dar uma olhada. Eu reiniciei meu aplicativo. Ok, a tela está boa e veja todos esses dados aqui. Maçã, damasco, banana e essa gordura protéica de carboidratos. Se você quiser, você pode produzir esse pedido da família Janus, qualquer que seja esse número de calorias. Se você quiser, você também pode produzi-los. Não estou usando a propriedade principal e também a propriedade final do estilo da lista. Eu só quero te mostrar como isso é feito. Como podemos criar modelos com tanta facilidade usando ferramentas online. E também, com sucesso, ele consumiu uma nova API que é tão frutada. E se você quiser, você também pode criar uma tela diferente para mostrar um único detalhe de fruta, se quiser, depende de você. Mas espero que você tenha gostado dos nossos vídeos até aqui. Esse modelo foi muito importante porque, na aplicação do mundo real, você criará modelos para tudo o que é usuários, contextos ou quaisquer dados ou informações que você tenha em seu aplicativo, você criará modelos para isso. Então é isso para esta sessão. Vejo você no próximo módulo. Obrigada.