Faaaallaaaa galera, Gustavo aqui e você esta no Site do Sobrinho, neste artigo vou tentar explicar da forma mais simples possível o que é uma API, de onde vem o nome quais são suas variações (Web API, API Rest, API Rest Full) e tudo mais que você precisa saber, e o principal, vou mostrar como uma API pode te ajudar muiiito no processo de tirar o seu projeto do papel. Então vamos lá ao terminar essa leitura você já deve ser capaz de entender os seguintes tópicos:
- O que é API?
- O que é API REST e SOAP?
- Como Funciona
- O que é um Webhook?
- O que é JSON?
- Porque usar uma API?
- Porque sistemas modernos usam uma API para ligar o frontend com o backend?
- E como fica a segurança das API?
- Qual a diferença entre API Rest e RestFul?
- BOAS PRÁTICAS
- O que são verbos HTTP? Quais são? E quando usar cada um deles?
- STATUS DAS RESPOSTAS
- Como encontrar a API de um site?
- Como estudar a documentação de uma API?
- Como consumir uma API?
- Exemplos de APIs
O que é API?
API significa “Interface de Programação de Aplicações”, elas existem a muito tempo e servem para fazer criar uma interface de comunicação entre aplicações.
Ser uma interface significa que ela é como se fosse uma tela onde o usuário poderá escolher as opções que vão resolver o problema delas dentro do sistema, porém o diferencial é que a API é uma interface onde outros softwares podem escolher opões para resolver os problemas das aplicações de forma sincronizada de forma a criar uma integração entre esses sistemas.
Dessa forma uma API não precisar ser necessariamente WEB, o nosso próprio sistema operacional mesmo fornece diversas APIs para que os softwares criados para estes S.O façam uso, para como por exemplo ter acesso a fazer impressão usando o computador os aplicativos podem enviar comandos para a interface do sistema referente a impressão e o S.O. cuida do restante, assim nós programadores não precisamos nos preocupar com os detalhes sórdidos que envolvem imprimir uma página, não precisando lidar diretamente com o Hardware e nem com o driver, o próprio sistema se encarrega disso.
Maaasss o mais popular mesmo vem sendo as Web APIs e imagino que seja elas que mais te despertam curiosidade, e para tudo que segue em diante vou focar nelas nossas queridas APIs REST
O que é API REST e SOAP?
Representational state transfer (REST): Utiliza do protocolo HTTP para fazer comunicação e pode retornar dados em JSON, XML, texto simples e HTML.
Simple object access protocol (SOAP): SOAP é um protocolo padrão projetado originalmente para possibilitar a comunicação entre aplicações desenvolvidas em diferentes linguagens e plataformas. Quando uma solicitação de dados é enviada a uma API SOAP, ela pode ser processada por meio de qualquer protocolo de camada da aplicação: HTTP (em navegadores da web), SMTP (em e-mails), TCP e muito mais. Porem as mensagens de retorno precisam ser documentos XML.
As APIs REST são leves e ideais para contextos mais modernos, como a Internet das Coisas (IoT), desenvolvimento de aplicações mobile e computação sem servidor. Os serviços web SOAP oferecem segurança integrada e transações em conformidade que atendem a muitas necessidades empresariais, mas que também os deixam mais pesados. Além disso, muitas APIs públicas, como a do Google Maps, seguem as diretrizes REST.
Como funciona uma API REST?
Na pratica uma API é composta de um endpoint, que é o endereço ou URL onde nossa API esta hospedada, um método (verbo HTTP) e os demais dados da requisição.
O usuário pode fazer uma requisição para o endpoint especifico desejado por ele seguindo os padrões necessários para a resposta correta do servidor, normalmente essa resposta virá em JSON
O que é um Webhook?
Às vezes, os webhooks são chamados de API reversa, mas isso não é totalmente verdade. Eles não são executados ao contrário, mas, em vez disso, não há necessidade de uma solicitação iniciada por você, os dados são enviados sempre que houver novos dados disponíveis.
O que é JSON?
Java Script Object Notation, é um padrão para definir objetos em Javascript, e como JavaScript é uma linguagem sempre presente no frontend o JSON é usado na maioria dos retornos das APIs, mas como disse antes elas podem retornar em outros formatos também.
Porque usar uma API?
Uma API vai te dar a possibilidade de integrar sistemas que já resolvem problemas de forma exemplar a sua aplicação de forma simples e segura. Como exemplo para isso temos várias lojas do varejo que expõe suas mercadorias para vender online através da API do Mercado Livre, o 99 pop (aplicativo de transporte) que usa a API do Google Maps para calcular as rotas para os carros, muitas empresas também enviam SMS diretamente de seus sistemas de gestão usando os serviços da Zenvia.
Então são vários os exemplos onde usar uma API pode evitar que reinventemos a roda, e nos concentremos no que é core para o nosso negocio.
Porque sistemas modernos usam uma API para ligar o frontend com o backend?
Usar APIs para trafegar as informações entre o backend e o frontend ajuda muito a normalizar a transmissão de informações em aplicações onde existem múltiplos frontends, ou seja site, mobile, aplicativo, desktop, TV, SmartWatch.
Seguindo esse cenário muitas aplicações começaram a utilizar as APIs, e isso vem se tornando tendência de arquitetura
E como fica a segurança das API?
Normalmente a segurança das API é feita através de TOKENS, e a forma mais utilizada são os tokens JWT
Outras utilizam o OAuth e GraphEl, elas oferecem camadas extras tanto de segurança, como também para delimitar o acesso as informações de cada ‘client’ de acordo com as regras de acesso especificas, mas apesar da segurança e padronização não é tão popular quando o método REST junto de tokens.
Qual a diferença entre API Rest e RestFul?
Para ser considerada RestFul a API deve seguir uma série de regras que ditam as boas práticas ao produzir uma API, que são:
- Uniform – Nossa API precisa ser coerente para quem vai consumi-lá. Precisa fazer sentido para o cliente e não ser confusa. Logo, coisas como: o uso correto dos verbos HTTP; endpoints coerentes (todos os endpoints no plural, por exemplo); usar somente uma linguagem de comunicação (json) e não várias ao mesmo tempo; sempre enviar respostas aos clientes; são exemplos de aplicação de uma interface uniforme.
- Client-server – Separação do cliente e servidor
- Stateless – servidor não pode armazenar o estado do cliente
- Cacheable – As respostas para uma requisição, deverão ser explicitas ao dizer se aquela resquição, pode ou não ser cacheada pelo cliente.
- Layered System – O cliente acessa a um endpoint, sem precisar saber da complexidade.
- Code on demand (optional)
RESTful, é a aplicação dos padrões REST.
BOAS PRÁTICAS
Utilizar corretamente os verbos HTTP para nossas requisições.
Não deixar barra no final do endpoint.
Nunca deixe o cliente sem resposta!
O que são verbos HTTP? Quais são? E quando usar cada um deles?
GET: Receber dados de um Resource.
POST: Enviar dados ou informações para serem processados por um Resource.
PUT: Atualizar dados de um Resource.
DELETE: Deletar um Resource.
STATUS DAS RESPOSTAS
- 1xx: Informação
- 2xx: Sucesso
- 200: OK
- 201: CREATED
- 204: Não tem conteúdo PUT POST DELETE
- 3xx: Redirection
- 4xx: Client Error
- 400: Bad Request
- 404: Not Found!
- 5xx: Server Error
- 500: Internal Server Error
Como encontrar a API de um site?
Mostro exemplos na live abaixo… https://www.youtube.com/watch?v=wEAIdlztWRA
https://www.youtube.com/watch?v=wEAIdlztWRA
Exemplos de APIs
Total Voice
https://voice-app.zenvia.com/painel/whitelist_ip_edit.php
https://totalvoice.github.io/totalvoice-docs/#introducao
The Movie DB
https://developers.themoviedb.org/3
E caso goste deste tipo de conteúdo você pode conferir no meu canal Site do Sobrinho, onde entrego muitas outras dicas para esse tipo de sites e aplicativos.
ViaCep
https://viacep.com.br/
BrasilAPI
https://github.com/BrasilAPI/BrasilAPI
https://brasilapi.com.br/api/cep/v1/32310210
https://brasilapi.com.br/api/banks/v1/
https://brasilapi.com.br/api/ddd/v1/11
Nasa
https://api.nasa.gov/
Fotos dos Rovers
https://api.nasa.gov/mars-photos/api/v1/rovers/curiosity/photos?sol=1000&api_key=DEMO_KEY
https://restcountries.eu/rest/v2/name/united