Tópicos Especiais em Estatística Comp.

API - Application Programming Interfaces

Prof. Jodavid Ferreira

UFPE






API - Application Programming Interfaces


O que é uma API?


  • API significa Application Programming Interface.

    • É 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 consulta
url <- "https://api.myip.com"
params <- list()
resposta <- GET(url, query = params)

# Visualizar o conteúdo
conteudo <- 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ção
  status_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ção
  status_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ção
  status_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.

APIs - Imagens



https://medium.com/@saygiligozde/why-is-rest-api-is-so-popular-ed9ca370b541

APIs - Imagens



https://www.numpyninja.com/post/rest-api-with-an-example

APIs - Imagens



https://blog.softwaretoolbox.com/how-to-integrate-rest-api-data




OBRIGADO!


Slide produzido com quarto