APIs for Beginners - How to use an API (Full Course / Tutorial)

APIs for Beginners - How to use an API (Full Course / Tutorial)

APIs e sua importância

Visão geral da seção: Nesta seção, o palestrante discute a importância das APIs em diferentes sistemas operacionais e navegadores. Ele também fala sobre como as bibliotecas e frameworks fornecem uma API para estender suas funcionalidades.

A importância das APIs

  • As APIs permitem que os desenvolvedores escrevam um único script que funciona em diferentes sistemas operacionais e navegadores.
  • As bibliotecas fornecem código para resolver problemas comuns, como converter uma imagem colorida em preto e branco.
  • Os frameworks fornecem uma API para adicionar novas rotas ao aplicativo da web.
  • As APIs abstraem grande parte do trabalho necessário para realizar tarefas específicas, permitindo que os desenvolvedores se concentrem no problema de negócio em questão.

APIs remotas

  • As APIs remotas permitem controlar objetos à distância, como um controle remoto de TV ou um robô controlado por um aplicativo móvel.
  • As APIs remotas também podem ser usadas para acessar dados que não caberiam no dispositivo local, como identificar uma música usando um trecho gravado pelo microfone do celular.
  • As APIs remotas oferecem acesso a recursos computacionais ilimitados, permitindo que aplicativos realizem tarefas complexas sem sobrecarregar o dispositivo local.

Introdução à API RESTful

Visão geral da seção: Nesta seção, o instrutor introduz a estrutura JSON e explica como as APIs RESTful funcionam. Ele também discute os diferentes verbos HTTP usados em APIs RESTful.

Estrutura JSON

  • JSON é uma maneira de estruturar e aninhar dados.
  • Todas as linguagens de programação têm algum meio de transformar uma string JSON em um objeto nativo.

Verbos HTTP

  • Existem vários verbos HTTP disponíveis para uso em APIs RESTful.
  • Esses verbos são usados para indicar claramente a intenção da solicitação.
  • Os verbos incluem GET, POST, PUT, DELETE e PATCH.

CRUD com métodos HTTP

  • Os métodos HTTP podem ser usados para representar operações CRUD (criar, ler, atualizar e excluir).
  • Por exemplo, adicionar um autor pode ser feito enviando dados para o endpoint /autores usando o verbo POST.
  • Remover um autor pode ser feito enviando uma solicitação DELETE ao recurso do autor específico.
  • As atualizações geralmente suportam o verbo PATCH.

Explorando a API RESTful do Spotify

Visão geral da seção: Nesta seção, o instrutor apresenta a API RESTful do Spotify como um exemplo de como usar APIs na prática.

Acessando a API do Spotify

  • O site spotify.com tem uma seção dedicada aos desenvolvedores que permite explorar sua API.
  • A documentação fornece exemplos de coisas que você pode fazer com a API, como obter informações sobre músicas e artistas.
  • A API do Spotify retorna dados em formato JSON.

Autorização

  • Para acessar recursos específicos, como listas de reprodução ou histórico de audição, é necessário autorização.
  • Os usuários podem conceder acesso a aplicativos para acessar esses recursos em seu nome.

Conclusão

Visão geral da seção: Nesta seção final, o instrutor encoraja os alunos a explorar APIs RESTful por conta própria e oferece algumas sugestões sobre como começar.

Explorando APIs RESTful

  • Existem muitas APIs disponíveis que permitem fazer coisas incríveis com apenas algumas chamadas simples.
  • As APIs RESTful são padronizadas e funcionam de maneira semelhante, independentemente do serviço subjacente.
  • Os desenvolvedores podem usar as APIs para criar mashups interessantes combinando diferentes serviços.

Recursos de API e Curl

Visão geral da seção: Nesta seção, o palestrante fala sobre como usar o Curl para explorar APIs. Ele usa o exemplo do Spotify para mostrar como fazer uma pesquisa de faixa usando a linha de comando.

Usando o Curl para explorar APIs

  • O Curl é uma ferramenta útil para explorar APIs.
  • O Spotify é um exemplo de API que usa o Curl em sua documentação.
  • Ao fazer uma pesquisa com espaços, é necessário codificar a URL com sinais de adição (+).
  • É possível abrir links diretamente na linha de comando usando o comando "open".
  • Para encontrar a faixa correta, é importante verificar todos os resultados e rolar até o topo da página.
  • O uso do Curl pode ser complicado quando há muitos dados retornados pela API.

Introdução ao Twilio

Visão geral da seção: Nesta seção, o palestrante apresenta a empresa Twilio e seus serviços baseados em APIs.

Sobre a Twilio

  • A Twilio começou como um conjunto de APIs para abstrair canais de comunicação.
  • A Twilio oferece uma ampla variedade de produtos que usam suas APIs.
  • As APIs da Twilio permitem enviar mensagens SMS, fazer chamadas telefônicas e enviar mensagens por WhatsApp, entre outras coisas.
  • É possível se inscrever para uma conta gratuita da Twilio sem a necessidade de um cartão de crédito.

Enviando mensagens SMS com o Twilio

  • A Twilio permite enviar mensagens SMS com apenas um comando.
  • As APIs da Twilio abstraem os detalhes técnicos dos diferentes canais de comunicação.
  • Para se inscrever na conta gratuita da Twilio, é necessário fornecer informações pessoais e um endereço de e-mail válido.

Introdução

Visão geral da seção: Nesta seção, o apresentador introduz a ferramenta Postman e outras ferramentas semelhantes que podem ser usadas para explorar APIs.

Ferramentas para explorar APIs

  • Postman é uma ferramenta poderosa com muitos recursos.
  • Existem outras ferramentas semelhantes ao Postman, como o REST Fox.
  • O REST Fox é uma ferramenta de código aberto que pode ser usada para explorar APIs.

Enviando mensagens SMS com Twilio

Visão geral da seção: Nesta seção, o apresentador mostra como enviar mensagens SMS usando a API do Twilio.

Configurando um novo pedido no REST Fox

  • O apresentador cria uma nova pasta chamada "Twilio" no REST Fox.
  • Em seguida, ele cria um novo pedido na pasta "Twilio".

Enviando uma mensagem SMS

  • O apresentador mostra como enviar uma mensagem SMS usando a API do Twilio.
  • Ele também explica como recuperar as mensagens recebidas.

Instalação do Thunder Client

Visão geral da seção: Nesta seção, o palestrante mostra como instalar e usar o Thunder Client, um cliente de API REST leve para VS Code.

Instalando o Thunder Client

  • Para instalar o Thunder Client, pressione Command+Shift+P e digite "Install Extensions".
  • Selecione a opção "Thunder" e clique em "Instalar".
  • O Thunder Client será instalado na barra lateral do VS Code.

Usando o Thunder Client

  • Crie uma nova coleção no Thunder Client.
  • Adicione uma nova solicitação à coleção.
  • Insira a URL da API que deseja explorar.
  • Configure as credenciais de autenticação na coleção ou na solicitação.
  • Envie a solicitação para ver os resultados.

Explorando a API Twilio com o Thunder Client

Visão geral da seção: Nesta seção, o palestrante usa o Twilio como exemplo para mostrar como explorar APIs usando o Thunder Client.

Obtendo informações sobre mídia enviada pelo Twilio

  • Use as credenciais de autenticação fornecidas pela conta do Twilio para fazer uma solicitação GET à API de mensagens do Twilio usando o Thunder Client.
  • Analise os resultados da solicitação para obter informações sobre a mídia enviada pelo Twilio.

Obtendo uma imagem enviada pelo Twilio

  • Faça uma nova solicitação GET à API de mensagens do Twilio sem as credenciais de autenticação para obter a imagem enviada.
  • Analise os resultados da solicitação para ver a imagem.

Entendendo Promises

Visão geral da seção: Nesta seção, o instrutor explica como as Promises funcionam no JavaScript e como elas são usadas para lidar com operações assíncronas.

Como as Promises funcionam

  • Uma Promise é um objeto que representa uma operação assíncrona que ainda não foi concluída.
  • As Promises têm três estados possíveis: pendente, resolvida ou rejeitada.
  • Quando uma Promise é resolvida, ela retorna um valor. Quando é rejeitada, ela retorna um erro.

Usando Promises em JavaScript

  • As Promises são usadas para lidar com operações assíncronas em JavaScript.
  • Os métodos de lista do cliente Twilio são assíncronos, o que significa que eles retornam uma Promise em vez de um valor imediatamente.
  • Para usar uma Promise em JavaScript, você pode chamar o método .then() na Promise e passar uma função a ser executada quando a Promise for resolvida.
  • Você também pode chamar o método .catch() na Promise e passar uma função a ser executada quando a Promise for rejeitada.

Lidando com erros em Promises

  • É importante lidar com erros ao trabalhar com Promises em JavaScript.
  • Você pode usar o método .catch() na Promise para capturar qualquer erro que ocorra durante a execução da operação assíncrona.
  • Se você não lidar com os erros adequadamente, sua aplicação poderá falhar silenciosamente sem fornecer informações úteis sobre o problema.

Trabalhando com JSON e Arrays

Visão geral da seção: Nesta seção, o instrutor explica como trabalhar com JSON e Arrays em JavaScript.

Trabalhando com JSON

  • JSON é uma forma de representar dados em JavaScript.
  • Você pode usar o método JSON.parse() para converter uma string JSON em um objeto JavaScript.
  • Você pode usar o método JSON.stringify() para converter um objeto JavaScript em uma string JSON.

Trabalhando com Arrays

  • Um Array é uma coleção ordenada de valores em JavaScript.
  • Você pode usar o método .forEach() para iterar sobre os elementos de um Array e executar uma função para cada elemento.
  • Cada elemento de um Array tem um índice associado a ele, começando do zero.
  • Os Arrays podem conter qualquer tipo de valor, incluindo outros Arrays e objetos.

Exemplo prático: Obtendo mensagens do Twilio API

  • O instrutor mostra como obter mensagens do Twilio API usando Promises, JSON e Arrays em JavaScript.
  • Ele usa o método client.messages.list() do cliente Twilio para obter as mensagens e, em seguida, usa a Promise retornada pelo método .then() para processar as mensagens recebidas.
  • Ele usa o método .forEach() para iterar sobre as mensagens recebidas e exibir informações relevantes sobre cada mensagem.

Identificando o erro

Visão geral da seção: Nesta seção, o palestrante identifica um erro e explica como corrigi-lo.

Identificando o erro

  • O palestrante identifica o erro.
  • Ele mostra como corrigir o erro usando Twilio para hospedar nosso código.
  • Explica que isso é feito usando a solução serverless da Twilio.
  • O palestrante faz upload do código para a plataforma Twilio.

Configurando Webhooks

Visão geral da seção: Nesta seção, o palestrante explica como configurar webhooks.

Configurando Webhooks

  • O palestrante explica que precisamos lidar com a resposta programaticamente e usa webhooks para fazer isso.
  • Ele mostra como configurar um número de telefone no painel do Twilio para usar um webhook específico.

Usando TwiML

Visão geral da seção: Nesta seção, o palestrante explica como usar TwiML.

Usando TwiML

  • O palestrante explica que quando alguém envia uma mensagem de texto para nosso número do Twilio, ele envia uma solicitação para um endpoint.
  • Ele explica que podemos configurar um novo servidor da web ou simplesmente usar uma função do Twilio que retorna TwiML.

Criando uma API com Twilio Functions

Visão geral da seção: Nesta seção, o palestrante demonstra como criar uma API usando o Twilio Functions.

Acessando a resposta da API

  • O palestrante mostra a resposta padrão da API do Twilio.
  • Ele explica como acessar as informações de cabeçalho na resposta da API.
  • O palestrante discute como compartilhar a URL da API com outros membros da equipe para integrá-la ao aplicativo.

Usando mensagens de texto recebidas

  • O palestrante começa a escrever código JavaScript para acessar as mensagens de texto recebidas.
  • Ele incentiva os espectadores que não estão familiarizados com JavaScript a seguir conceitualmente e aproveitar o fato de estarem em um curso baseado em vídeo.
  • O palestrante explica como obter acesso ao cliente REST do Twilio e autenticá-lo no objeto de contexto.
  • Ele usa a API do Twilio para obter todas as mensagens enviadas para um número específico e armazena-as em uma variável.
  • O palestrante percorre cada mensagem usando um loop for of.

Trabalhando com várias imagens em uma mensagem

  • O palestrante menciona que é possível adicionar várias imagens a uma mensagem de texto antes de enviá-la.

Acessando recursos com Fetch

Overview da Seção: Nesta seção, o instrutor demonstra como acessar recursos usando a API Fetch.

Usando a API Fetch

  • Criar um novo objeto de resposta e usar o método Fetch para aguardar uma resposta.
  • O método Fetch é parte da Web API que os navegadores devem implementar para buscar dados de uma API.
  • É possível usar um link relativo para acessar a API no mesmo servidor.
  • O método JSON retorna a representação JSON do que foi retornado pela resposta.

Deploying e Visualizando a Aplicação

Overview da Seção: Nesta seção, o instrutor demonstra como implantar e visualizar a aplicação.

Implantando e Visualizando

  • Salvar as alterações antes de implantá-las.
  • Copiar o URL dos ativos e colá-lo na aplicação para buscar fotos na galeria.
  • A aplicação agora pode buscar fotos em uma galeria usando apenas duas linhas de código.

Autenticação em APIs

Overview da Seção: Nesta seção, o instrutor discute autenticação em APIs.

Autenticação em APIs

  • Não há autenticação nesta API específica.
  • As chaves não devem ser passadas pelo cliente porque podem ser vistas por qualquer pessoa que visualize o código-fonte.
  • É possível escrever um servidor que mantenha o controle das chaves e se conecte ao cliente.

Considerando a API RESTful

Overview da Seção: Nesta seção, o instrutor discute se a API é RESTful.

Considerando a API RESTful

  • A arquitetura é cliente-servidor.
  • A API é stateless.
  • Não há informações de cacheabilidade no momento.

Sistema em Camadas

Visão Geral da Seção: Nesta seção, o palestrante discute a importância de um sistema em camadas.

Importância do Sistema em Camadas

  • Um sistema em camadas é importante porque permite que diferentes partes do sistema sejam atualizadas ou substituídas independentemente umas das outras.
  • Isso torna mais fácil manter e atualizar o sistema ao longo do tempo.
  • Além disso, um sistema em camadas pode ajudar a melhorar a escalabilidade e a flexibilidade do sistema.
  • Por fim, um sistema em camadas pode ajudar a melhorar a segurança do sistema, permitindo que diferentes partes tenham níveis diferentes de acesso.
Video description

What is an API? Learn all about APIs (Application Programming Interfaces) in this full tutorial for beginners. You will learn what APIs do, why APIs exist, and the many benefits of APIs. APIs are used all the time in programming and web development so it is important to understand how to use them. You will also get hands-on experience with a few popular web APIs. As long as you know the absolute basics of coding and the web, you'll have no problem following along. This course has been updated from a previous version. 💻 Teacher’s Notes: https://twil.io/notes-api-course 🎥 Course created by Craig Dennis, Developer Educator at Twilio 🐦 Craig on Twitter: @craigsdennis ❤️ Support for this channel comes from our friends at Scrimba – the coding platform that's reinvented interactive learning: https://scrimba.com/freecodecamp ⭐️ Contents ⭐️ Unit 1 - What is an API ⌨️ Video 1 - Welcome (0:00:00) ⌨️ Video 2 - Defining Interface (0:04:50) ⌨️ Video 3 - Defining API (0:08:49) ⌨️ Video 4 - Remote APIs (0:13:59) ⌨️ Video 5 - How the web works (0:18:17) ⌨️ Video 6 - RESTful API Constraint Scavenger Hunt (0:23:21) Unit 2 - Exploring APIs ⌨️ Video 1 - Exploring an API online (0:29:06) ⌨️ Video 2 - Using an API from the command line (0:45:01) ⌨️ Video 3 - You go Curl (0:56:20) ⌨️ Video 4 - Using tools to explore APIs (1:14:21) ⌨️ Video 5 - More tools for your API exploring toolbox (1:36:20) ⌨️ Video 6 - Using Helper Libraries (1:48:34) Unit 3 - All Together Now ⌨️ Video 1 - Introducing the Project (2:15:30) ⌨️ Video 2 - Serverless (2:23:30) ⌨️ Video 3 - Writing a Server Side API (2:37:08) ⌨️ Video 4 - Fetching Results on the Client from our Server (2:56:54) ⌨️ Video 5 - Wrap Up (3:05:29) 🎉 Thanks to our Champion and Sponsor supporters: 👾 Nattira Maneerat 👾 Heather Wcislo 👾 Serhiy Kalinets 👾 Erdeniz Unvan 👾 Justin Hual 👾 Agustín Kussrow 👾 Otis Morgan -- Learn to code for free and get a developer job: https://www.freecodecamp.org Read hundreds of articles on programming: https://freecodecamp.org/news