Code Monkey home page Code Monkey logo

on8-revisao-ii's Introduction

Hello, On8! Hoje é dia de revisão, BB!

Como você está lidando com esse processo de transição?

Aprender a aprender pode ser muito doloroso, mas eu te garanto uma coisa: é libertador! 🚀

  • Vamos começar com um momento só nosso ❤️ 20min
  • Depois vamos revisar alguns dos conceitos estudados nas últimas semanas: consumo de API 30min
  • Intervalo 10min
  • Teremos bastante treino!1h20min
  • Intervalo 10min
  • E de quebra um projetinho guiado massa pra chamar de seu! 1h30min

Revisão

Essa revisão vai te ajudar a relembrar conceitos e modelos para estabelecer o seu mapa mental de aprendizado! 😃

HTTP

É o protocolo de transferência de hipertexto.

O principal protocolo de comunicação entre computadores utilizados na internet.

Ele cria as regras para enviar e receber informações na internet.

Ele é responsável pelo o que acontece por debaixo dos panos quando usamos a internet.

API

Interface entre aplicativos e programação.

Se uma interface de um sistema é criado para o usuário final, a API é desenvolvida para que um sistema possa usar as funcionalidades de outro sistema.

Interface ideal para que um sistema se comunique com outro sistema.

REST e RESTful

Rest é uma abstração(forma de usar as regras) do protocolo HTTP para simplificar a construção de um web service, ou seja quem cria uma API com as restrições e regras do modelo Rest está criando na verdade uma API Restful.

O grande objetivo desse modelo é fazer com que os recursos estejam disponíveis através de URLs.

Verbos ou métodos

Para além de GET e POST, temos também no nosso leque de principais métodos o PUT, DELETE e PATCH.

É simples de entender:

  • GET: para consultas
  • POST: para criação de recursos
  • DELETE: para remoção de recursos
  • PUT e PATCH: para atualização de recursos

Status CODE

Respostas de requisições para ficarmos atentas:

  • 1XX informativo
  • 2XX sucesso
  • 4XX erro de requisição
  • 5XX erro de servidor

DOM

É a árvore de elementos dentro do nosso código HTML.

É tudo o que o Javascript pode manipular.

Exemplos:

  • Capturar um botão e escutar o click para executar uma ação
  • Capturar div e inserir elementos e/ou atributos
  • Capturar elemento e remover o elemento ou os filhos dele
  • Capturar elementos para alterar estilo

Como?

Capturar elementos:

document : variável glogal para referenciar a árvore de elementos getElementById: retorna elemento a partir do id
getElementsByTagName: retorna um vetor/HTMLCollection
getElementsByClassName: retorna um vetor
querySelector: retorna um único elemento
querySelectorAll: retorna uma nodeList

Criar elementos:

createElement: cria elemento setAttribute: insere propriedades createTextNode: Insere conteúdo appendChild: identifica elemento pai para o elemento que criamos

Remover elementos:

remove()
removeChild()

Alterar estilos de elementos:

elemento.style.propriedade = "valor"

Alguns padrões e sintaxes de Javascript

Você precisa aprender 7 conceitos fundamentais: variáveis, tipos, desestruturação de dados, recuperação de dados (principalmente objetos, arrays e arrays like), funcões, operadores, condicionais, fetch api(promises) e eventos.

Agora, você precisa aprender a sintaxe(como escrever cada coisa), depois você precisa trazer seu modo de pensar para execuções dentro do seu projeto, dê um passo de cada vez e de repente você tem uma aplicação inteirinha pra chamar de sua. Esse passo não vai ser rápido

ASSINCRONICIDADE

Exemplo: Você vai num restaurante, escolhe a comida e escolhe uma bebida. O garçon traz a bebida antes enquanto a comida ainda não está pronta. Esse é um processo assíncrono, a segunda requisição não depende da primeira ser executada antes pra obter uma resposta.

FETCH

A API Fetch fornece o método global fetch() para termos de uma maneira lógica e fácil para buscar recursos de forma assíncrona.

PROMISE

São promessas que não vão incluenciar na linha de tempo do nosso código.

Elas são funções que devolvem resultados de sucesso ou erro, depois de um tempo.

.then > resolve
.catch > reject

ASYNC/AWAIT

A partir do ES8 e surgiu para resolver o problema de aninhamento de thens.

É simples: primeiro definimos uma função que precisa ser async e dentro do bloco de execução devemos colocar o await.

BÔNUS: AXIOS

Biblioteca AJAX baseada em promises que facilita nossas requisições de forma assíncrona.

sempre importar o axios antes do script principal

Exemplos:

Recurso Descrição
/db Usando fetch e promise(then), liste os dados do recurso no console
Recurso Descrição
/css Usando fetch e promise(then e catch), liste os dados do recurso no console e depois renderize como uma lista de titulos.
Recurso Descrição
/html Usando fetch e promise, liste os dados do recurso no console e depois renderize como como um grupo de cards com a imagem e o titulo.
Recurso Descrição
/logica Usando fetch e promise, liste os dados do recurso no console e depois renderize como como um grupo de cards com a imagem e o titulo.
Recurso Descrição
/javascript Usando axios e async/await, liste os dados do recurso renderizando como um grupo de cards com a imagem e o titulo.

Desafio:

Calma! É só mais um PROJETINHO GUIADO pra chamar de seu! Já treinamos bastante com nossos exemplos na revisão!

Vamos consumir as APIs do Github e do Giphy para determinar um humor.

Esse é o funcionamento esperado, olha que fofo:

Gif Yeah

📂

Criamos uma interface onde um input determina um parâmetro para ser filtrado e retorna um usuário do recurso users da API do github.

Além disso, estamos também listando o recurso gifs da Api do Giphy, filtrando os 50 trending e mostrando um gif na tela de forma randômica.

Criamos uma visualização para os dados retornados

index.html

Uma árvore DOM beeeem simples para o input, o botão e também para renderizar os dados que serão retornados do algoritmo

script.js

APIs:


Algoritmo:

  1. capturar elementos do HTML
  2. assistir o evento de clique do botão
  3. quando houver clique
    a) previne o comportamento padrão do navegador
    b) pega o valor do input
    c) passa para a chamada de API do Github e do objeto recebido, pegar somente o nome
    d) inserir esse nome junto com ", seu humor hoje é: " no resultado
    e) fazer chamada e API do giphy
    f) receber a array
    g) reduzir os indices a um indice aleatório da array
    h) pegar a url da imagem do item sorteado
    i) criar imagem e inserir a url da imagem no

Simara Conceição

on8-revisao-ii's People

Contributors

simaraconceicao avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.