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

Projeto de APIs

Projeto de APIs

O que pensar para APIs públicas,
[micros]serviços e SPAS

Celso Crivelaro

October 08, 2017
Tweet

More Decks by Celso Crivelaro

Other Decks in Technology

Transcript

  1. Projetos de APIs O que pensar para APIs públicas, [micros]serviços

    e SPAS Celso Crivelaro @celsocrivelaro http://crivelaro.me
  2. Portal Usuário O que achávamos que deveria ser: Sistema Portal

    Administrativo API HTTP Serviria aos Portais Serviria como API Externa
  3. Portal Usuário O que achávamos que deveria ser: Sistema Portal

    Administrativo API HTTP Serviria aos Portais Serviria como API Externa Inseguro Dificulta Mudanças
  4. POST: Inserção em lote com Payloads Grandes API Externa API

    com foco em sistema Schemas em formatos diferentes: JSON e XML
  5. ~ 8 milhões de consultas ao dia API Serviço Consulta

    de informações para saldo e transformações Performance era um problema
  6. Muito fácil de fazer -> Script, Não tem o overhead

    web Integração por Arquivo Integração por FTP, Upload de Arquivo e S3 Arquivo Posicional ou CSV
  7. Desacopla a transmissão da mensagem Integração via Broker Regras de

    Envio e distribuição Schema: XML, JSON, Binários
  8. Portal Usuário Sistema 1 Portal Administrativo Sistema 2 Sistema 3

    Interfaces abertas para ataque Camada na Internet WebService
  9. Portal Usuário Sistema 1 Portal Administrativo Sistema 2 Sistema 3

    Serviço API Usuário Camada na Internet Rede Fechada WebService
  10. Foco em usuário SPA OAuth, Usuário/Senha Sessão Tokens (grandes) Serviços

    / API Externa Gestão de invalidação Login baseado no Protocolo Broken
  11. Bom para itens pequenos e baixo volume WebService - Integração

    Externa / [Micros]serviços Problemático quando o payload é grande Imediatamente ponha em um processamento assíncrono
  12. Pode-se enviar MBs ou GBs de um único arquivo Arquivos

    - Microsserviços Usar AWS S3 ou mesmo SFTP Quando não há pressa
  13. Remover um endpoint / fila / diretório Breaking Changes Adicionar

    novo campo obrigatório Remover ou Alterar campo ou tipo
  14. Como avisar a todos que API tem nova mudança Gestão

    de Mudança Manter as 2 versões por um tempo Plano de desligamento da versão anterior
  15. 1o Passo: Permite fazer o design Documentação Permite que 2

    ou mais equipes trabalhem apenas com a documentação Mock servers
  16. Regras de Negócio ponta a ponta: Cadastro, verificar na listagem

    Aceitação - Regras de Negócio Cadastro API - Listagem API Cadastro API - Listagem Tela Cadastro Tela - Listagem API Exemplos de Combinações