Upgrade to Pro — share decks privately, control downloads, hide ads and more …

APIs: O QUE SÃO, ONDE VIVEM E DO QUE SE ALIMENTAM.

APIs: O QUE SÃO, ONDE VIVEM E DO QUE SE ALIMENTAM.

O que são APIs? Quais as boas praticas que temos hoje no mercado? Quais os padrões de segurança?

Avatar for PaulaSimiqueli

PaulaSimiqueli

March 31, 2021
Tweet

More Decks by PaulaSimiqueli

Other Decks in Technology

Transcript

  1. 26 anos Sobre mim Sistemas de Informação - UFES Tech

    Lead, Beerstorm.lab - Ambev Palestrante (APIX, API Days Paris) /PaulaSimiqueli
  2. TIPOS DE APIs Empresas Nacionais Empresas Digitais Indivíduos | Coisas

    (IoT) | Startups Parceiros | Concorrentes PÚBLICA INTERNA RESTRITA Supply Chain | Clientes Coisas (IoT) Funcionários Fornecedores
  3. REST (Representation State Transfer) Estilo arquitetural que utiliza o HTTP

    visando maior interoperabilidade entre aplicações distribuídas. RESTFul Design que respeita os conceitos REST REST & RESTFul
  4. 1 3 2 4 Web já construída em cima do

    HTTP. Fácil de entender. Variedade de implementações HTTP em inúmeras linguagens Baixo acoplamento entre o Cliente-Servidor Por que HTTP?
  5. Domínio & URI URI: https://api.devsummit.com/nome-da- api/v1/recurso HTTP ou HTTPS Seu

    domínio Nome da API (opcional) Recursos Versão da API
  6. Recursos Coleção /pedidos Elemento /pedidos/{idPedido} /pedidos/980c61e3 ou /pedido/980c61e3 Verbo vs

    Substantivo Sub-elemento /pedidos/{id}/itens Singular vs Plural Nomes compostos? /notas-fiscais /buscarPedido ou /pedidos/980c61e3 Cenários “sem recurso” /pedidos/980c61e3/rastreamento
  7. Granularidade 1. Agrupar recursos que são normalmente usados juntos 2.

    No máximo 2 ou 3 níveis de objetos /v1/usuarios/{id}/pedidos Pragmaticamente: Granularidade nível 1 /pedidos/{idPedido} Granularidade nível 2 /pedidos/{idPedido}/itens Granularidade nível 3 /pedidos/{idPedido}/itens/{idItem}/categorias
  8. Verbos HTTP Recurso \ Verbos POST (create) GET (read) PUT

    (update, create) DELETE (delete) /pedidos Criar novo pedido Lista pedidos -- Apaga todos os pedidos /pedidos/980c61e3 -- Obtém pedido 980c61e3 Atualiza o pedido 980c61e3, se não existir, cria Apaga o pedido 980c61e3
  9. Versionamento //C:LAB/PESSOAS/ENGAJAR/TALKS/API URI: https://api.devsummit.com/orders/v2/pedidos/{idPedido} Outras alternativas: • Twilio: /2010-04-01/Accounts/ •

    Salesforce.com: /services/data/v20.0/limits Nunca quebre o cliente!! Versão E SE... For preciso mudar o contrato da API e já tenho clientes em produção?
  10. Path Param Quando você necessita identificar um recurso, e você

    já conhece o identificador. GET /pedidos/x124aq134 Query Param Quando você necessita filtrar ou ordenar os itens que serão retornados. GET /pedidos?status=ativo&_sort= dataCriacao Path Param vs Query Param
  11. Filtros //C:LAB/PESSOAS/ENGAJAR/TALKS/API GET /v1/pedidos?status=ativo GET /v1/pedidos?_fields=pedidoId,itens Busca com escopo (subconjuntos):

    Respostas parciais: GET /pedidos?q=macbook+air Busca Global: GET /v1/pedidos?data-pedido=2019-05-21 Busca por data:
  12. Níveis de criticidade ENABLED BY AMBEV Básico Intermediário Crítico ❑

    Quanto você conhece dos Client Apps? ❑ As APIs dão acesso a informações sensíveis? ❑ As APIs alteram dados importantes?
  13. Níveis de criticidade ENABLED BY AMBEV Crítico ❑ Quanto você

    conhece dos Client Apps? ❑ As APIs dão acesso a informações sensíveis? ❑ As APIs alteram dados importantes? Básico Intermediário Crítico API totalmente pública, potencialmente centenas de Apps externos Alguns Apps externos de parceiros bem conhecidos Somente Apps desenvolvidos pela própria empresa
  14. Níveis de criticidade ENABLED BY AMBEV ❑ Quanto você conhece

    dos Client Apps? ❑ As APIs dão acesso a informações sensíveis? ❑ As APIs alteram dados importantes? Básico Intermediário Crítico Registros médicos, transações financeiras ou dados vitais ao negócio Informações sociais, Internet das coisas Informações acessórias não relacionadas a usuários
  15. Níveis de criticidade ENABLED BY AMBEV ❑ Quanto você conhece

    dos Client Apps? ❑ As APIs dão acesso a informações sensíveis? ❑ As APIs alteram dados importantes? Básico Intermediário Crítico Todas as operações (inclusive DELETEs) em elementos e coleções de recursos GETs e alguns POSTs e PUTs em recursos não vitais Somente GETs
  16. Padrão aberto para identificação, autenticação e autorização utilizado para fazer

    logon em aplicações que desejam utilizar APIs. Os Fluxos do oAuth são: • Client Credentials • Authorization code • Implicit • Password • Refresh token oAuth
  17. 1 3 2 Integração 5 4 Distribuir dados/serviços por novos

    canais, Inovação Aberta Monetização Foco no que realmente importa para o seu negócio É necessário saber somente o que a API faz, mas não como ela o faz Vantagens
  18. 1 3 2 4 Necessidade de adesão aos padrões “Confiança”

    em quem expõe as APIs Necessidade de segurança Não é bala de prata Desvantagens e Cuidados
  19. Q&A