Consumindo API com SwiftUI

Tamara Erlij
Zero e Umas
5 min readMay 21, 2020

--

O que você precisa saber para começar a utilizar API

O que é uma API?

A sigla API refere-se ao termo em inglês “Application Programming Interface” que significa “Interface de Programação de Aplicativos”. É importante dizer que API é uma daquelas palavras que podem se referir a várias coisas diferentes, dependendo do contexto.

Em geral, as APIs definem as regras que os programadores devem seguir para interagir com uma linguagem de programação, uma biblioteca de software ou qualquer outra ferramenta de software. Ultimamente, o termo está sendo muito utilizado para descrever um tipo específico de interface da web. APIs são o que permite que dois aplicativos separados se comuniquem, autorizando que os usuários interajam com outros serviços ou sites sem sair do site.

Você pode considerar uma API como um conjunto de funções, protocolos e objetos de comandos, tal que pode ser usada para criar software ou interagir com um sistema externo. O ponto positivo é que ela fornece aos desenvolvedores comandos padrão para executar operações comuns, para que não precisem escrever o código do zero.

De acordo com o dicionário Dicio:

Um contrato significa um pacto entre duas ou mais pessoas, que se obrigam a cumprir o que foi entre elas combinado sob determinadas condições

Mas o que isso tem a ver com API?? Tudo!
Ao usarmos uma API, estamos estabelecendo um contrato em que dizemos que usaremos os métodos que foram fornecidos e respeitaremos as regras definidas nos documentos da API. E, em troca, o provedor de API prometerá manter todos os nossos requisitos iguais para que nosso aplicativo não falhe quando houver alguma mudança. Ou seja, é o contrato entre o desenvolvedor e o provedor da API!

Mas por que isso seria vantajoso?

As APIs são usadas para que diferentes aplicativos baseados na internet conversem entre si sem a necessidade de que alguém intervenha ou tenha que desempenhar uma tarefa. Pode ser utilizada em diversas áreas, até mesmo pelo setor financeiro, já que possibilita com muita mais facilidade preencher planilhas, enviar e-mails, emitir notas fiscais, fazer lançamentos contábeis e entre outros. Ou seja, inúmeras possibilidades!

É interessante notar que a maioria das plataformas principais têm uma API, tal que muitas dessas são gratuitas. Nós as encontramos em redes sociais (Facebook, Twitter, LinkedIn, Instagram e Pinterest), pagamentos onlines (PayPal, Cielo e. PagSeguro), localização (Google Maps e Foursquare) e marketplaces (Amazon e Mercado Livre). Podemos até mesmo obter dados da NASA via API! (Spoiler rs). Existem inúmeras APIs disponíveis on-line para desenvolvedores de software usarem para integrar informações de outros aplicativos em seu próprio software.

Entendendo melhor alguns termos:

  • Chaves de API: Essas chaves são usadas para autenticação para agentes do usuário que interagem ou fazem solicitações a uma API. Quando a API vê a chave que você está enviando, ela autentica que você é quem diz ser e o autoriza a executar uma determinada ação.
  • Chamada de API: Uma chamada de API é quando um aplicativo usa uma API para se comunicar com um servidor ou outro aplicativo. Isso ocorre basicamente sempre que um programa executa um código externo que não faz parte do programa principal.

Tutorial

A teoria sem a prática de nada vale, a prática sem a teoria é cega

Depois de um pouco de teoria, já podemos ver como que funciona na prática! Para praticar, vamos implementar uma API da NASA. O nosso objetivo é utilizar as informações disponibilizadas pela NASA no nosso app. Ficará assim:

Obs.: Neste tutorial utilizaremos SwiftUI, mas você pode optar por UIKit para consumir uma API.

Vamos começar?

1. Clique no link a seguir que você já encontrará as APIs disponíveis da NASA: https://api.nasa.gov
Você também pode simplesmente ir ao Google e digitar algo como “NASA API” que você já encontra facilmente! ☺

  1. Solicite a tua chave de API preenchendo as informações abaixo no site:

E prontinho! Você já receberá uma chave de API na hora!

3. Vamos encontrar uma API que seja interessante para o nosso projeto! Nesse tutorial utilizaremos “APOD: Astronomy Picture of the Day”, mas fique à vontade para utilizar qualquer outra.

4. Ao clicar na API escolhida, a gente consegue ver várias informações sobre. Copie a URL selecionada como demonstra abaixo e cole em outra aba.

Obs.: Query é basicamente uma consulta que você faz. No nosso caso, estamos consultando os dados da API da NASA para utilizarmos no nosso app.

Ao clicar no link, aparece os seguintes parâmetros:

5. Vamos criar uma struct que nos possibilitará realizar a chamada da API e receberemos a decodificação do JSON como resposta.

Perceba que essas informações (date, title, explanation e url) são fornecidas pelo próprio provedor da API.

6.

Atenção: onde está pedindo "A tua chave de API insira somente a chave que você recebeu, não o link da tua API. Não funcionará caso não for inserida nenhuma chave

7. Agora iremos utilizar a URLSession. Essa classe fornece uma API para baixar e fazer upload de dados indicados por URLs. Além disso, também é possível realizar downloads. O URLSessionDelegate e o URLSessionTaskDelegate fornecem suporte à autenticação e recebem eventos como redirecionamento e conclusão de tarefas. Você pode ler mais sobre na documentação disponibilizada pela Apple: https://developer.apple.com/documentation/foundation/urlsession

8. Vamos utilizar extensões. Se preferir, você pode abrir um novo arquivo para separá-los:

9. Crie uma nova SwiftUI View (URLImage) com o objetivo de criar um modo que carregue as imagens de modo leve e rápido para iOS.

10. Agora já podemos começar a fazer a tela de detalhes! Isto é, a tela que aparecerá quando clicarmos na foto. É aqui que o usuário poderá ver a foto em um tamanho maior e ler as informações sobre. Assim, abra um arquivo em SwiftUI e declare as duas variáveis (photo e body).

11. Feito isso, você já pode criar outro arquivo com SwiftUI. A parte visual entra aqui :)

E finalizado! Agora você já tem uma noção melhor de como consumir uma API! Além de conseguir ver imagens e informações da NASA de forma super prática ✨

Créditos ao tutorial: https://www.youtube.com/watch?v=Kr-NYBmpvck

Você pode acessar o repositório com o código completo no GitHub: https://github.com/tamaraerlij/API-with-SwiftUI

Muito obrigada!

--

--