É um conjunto de rotinas e padrões estabelecidos por uma aplicação para que outras aplicações possam utilizar as funcionalidades desta aplicação.
Pense em uma API como um garçom em um restaurante que leva seu pedido para a cozinha e traz a comida de volta.
API
Exemplos de Empresas que usam API:
Google:
APIs para serviços como Google Maps, YouTube e Google Drive.
Meta (Facebook):
APIs para integração com plataformas como Facebook Login e Instagram.
OpenAI:
APIs que fornecem acesso a modelos avançados de IA para processamento de linguagem natural.
Uber:
APIs para solicitação de corridas e acesso a dados de localização.
API
Grandes Empresa usam APIs, então quais as vantagens? Algumas são:
Escalabilidade: APIs permitem que serviços sejam escalados para milhões de usuários de forma eficiente.
Integração: Facilitam a integração com aplicativos e serviços de terceiros, expandindo o ecossistema da empresa.
Inovação Aberta: Desenvolvedores externos podem criar novas aplicações e funcionalidades, impulsionando a inovação.
Monetização: Oferecem novas fontes de receita através de modelos de negócios baseados em APIs.
Controle e Segurança: Permitem gerenciar e monitorar o acesso aos recursos da empresa de forma segura.
API
Por que é importante para nós estatísticos?
Acesso a dados em tempo real.
Integração com serviços web.
Automatização de processos de coleta e análise de dados.
API - REST vs SOAP
As APIs podem ser dos tipos REST vs SOAP:
REST (Representational State Transfer):
Arquitetura baseada em recursos.
Utiliza verbos HTTP: GET, POST, PUT, DELETE.
Geralmente retorna dados em formatos como JSON ou XML.
É mais simples e leve.
SOAP (Simple Object Access Protocol):
Protocolo baseado em XML.
Opera sobre vários protocolos de transporte como HTTP, SMTP, TCP.
É mais robusto e segue um padrão formal.
Suporta funcionalidades como segurança e transações complexas.
API
Comparação entre REST e SOAP
Característica
REST
SOAP
Simplicidade
Simples e leve
Mais complexo
Formato de Dados
JSON, XML, YAML, etc.
XML
Performance
Geralmente mais rápido
Pode ser mais lento
Segurança
Usa mecanismos padrão do HTTP
Suporta WS-Security
Estado1
Stateless (sem estado)
Pode ser stateful (com estado)
API - GET, POST, PUT, DELETE
GET
Objetivo: Recuperar dados ou recursos do servidor.
Característica: Não altera o estado do recurso no servidor (é uma operação de leitura).
Idempotência: É idempotente (múltiplas requisições produzem o mesmo resultado).
Envio de Dados: Parâmetros são enviados na URL.
Exemplo em R:
library(httr)# URL com parâmetros de consultaurl <-"https://api.myip.com"params <-list()resposta <-GET(url, query = params)# Visualizar o conteúdoconteudo <-content(resposta, "parsed")print(conteudo)
API - GET, POST, PUT, DELETE
POST
Objetivo: Enviar dados ao servidor para criar um novo recurso.
Característica: Pode alterar o estado do servidor (criação de dados).
Idempotência: Não é idempotente (requisições repetidas podem criar múltiplos recursos).
Envio de Dados: Dados são enviados no corpo da requisição.
Exemplo em R:
library(httr)# URL para onde os dados serão enviados url <-"https://api.exemplo.com/usuarios" dados <-list(nome ="Ana", idade =25) resposta <-POST(url, body = dados, encode ="json")# Verificar o status da requisiçãostatus_code(resposta)
API - GET, POST, PUT, DELETE
PUT
Objetivo: Atualizar um recurso existente ou criar um novo recurso se não existir.
Característica: Substitui completamente o recurso especificado.
Idempotência: É idempotente (o resultado é o mesmo em múltiplas requisições).
Envio de Dados: Dados são enviados no corpo da requisição.
Exemplo em R:
library(httr)# URL do recurso a ser atualizado url <-"https://api.exemplo.com/usuarios/123" novos_dados <-list(nome ="Ana Maria", idade =26) resposta <-PUT(url, body = novos_dados, encode ="json")# Verificar o status da requisiçãostatus_code(resposta)
API - GET, POST, PUT, DELETE
DELETE
Objetivo: Remover um recurso do servidor.
Característica: Deleta o recurso especificado.
Idempotência: É idempotente (múltiplas requisições têm o mesmo efeito).
Exemplo em R:
library(httr)# URL do recurso a ser deletado url <-"https://api.exemplo.com/usuarios/123" resposta <-DELETE(url)# Verificar o status da requisiçãostatus_code(resposta)
API - JSON E XML
É possível colocar como retorno de uma API vários tipos de extensão de arquivos, entretanto, os dois mais utilizados são JSON e XML.
JSON:
JSON significa JavaScript Object Notation.
Formato leve de troca de dados.
Fácil de ler e escrever.
XML:
XML significa eXtensible Markup Language.
Formato que usa tags para definir objetos.
Mais verboso que JSON1.
API - JSON E XML
Comparação entre JSON e XML:
Característica
JSON
XML
Legibilidade
Alta
Média
Tamanho
Menor
Maior
Parsing
Simples
Complexo
Legibilidade: JSON tem legibilidade alta devido à sua sintaxe simples e direta, enquanto XML é menos legível por ser mais verboso e usar muitas tags.
Tamanho: Arquivos JSON são menores por serem mais concisos, já os arquivos XML são maiores devido ao uso extensivo de tags e estruturação.
Parsing: O parsing do JSON é simples porque mapeia facilmente para estruturas de dados em linguagens de programação, enquanto o parsing do XML é mais complexo e requer ferramentas especializadas.