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

API FIRST - Quando usar uma estratégia de API?

API FIRST - Quando usar uma estratégia de API?

O conceito de API First vem crescendo mundialmente entre as organizações. Sua aplicabilidade permite melhor integração entre departamentos, parceiros, aplicações e uma mudança de mindset.

Várias empresas já estão adotando este conceito como essencial para os seus desenvolvedores e colaboradores em geral.

API First permite uma estratégia para a adequação e integração da API com a análise negocial e isso pode gerar novas receitas antes não imaginadas.

Mas, quando e por que devemos criar uma aplicação baseada em API? Quais os benefícios? Quando NÂO usar a estratégia de API FIRST? Como posso aplicar este conceito em PHP?

BRUNO SOUZA

April 14, 2018
Tweet

More Decks by BRUNO SOUZA

Other Decks in Technology

Transcript

  1. Hello! Eu sou Bruno Souza • Analista de Sistemas –

    Datainfo (Ministério das Relações Exteriores - MRE); • https://www.facebook.com/bruno7strings • https://www.linkedin.com/in/bruno-souza-61390b77 • http://www.zend.com/en/yellow-pages#list-cid=0&ClientCandidateID=ZEND022793 • https://www.instagram.com/bruno7strings/
  2. A ascensão da API na visão dos negócios significa: •

    Grande oportunidade de negócios para empresas; • Novos fluxos de receita; • Maximização de valores para os clientes e negócio; A ascensão da API na visão da TI significa um grande desafio técnico que tenha uma arquitetura de sistemas: • Sólida; • Segura; • Performática; • Flexível; • Fácil integração; Introdução
  3. O Que é API? public function api() :array { return

    [ ‘acronimo’ => ‘Application Programming Interface’, ‘definicao’ => ‘Uma coleção de rotinas, protocolos e ferramentas para ’ . ‘construcao de aplicacoes’, ‘funcao’ => ‘intermediário digital,’ . ‘ fornecer serviços’ ]; }
  4. A API tem como principais características: • Possuem alguns modelos

    como: WebAPIs, System APIs; Aqui será abordado o modelo de WebAPI; • Acesso público, restrito ou privado; • Baseado em arquitetura cliente x servidor; • Baseado em protocolo HTTP; • Possuem um tipo de retorno padrão, dependendo do tipo ou estilo de tecnologia adotada na API; • Geralmente baseada em microserviços; Características da API
  5. Como funciona a api? • Gateway - Gerenciamento do controle

    de acessos; • Como um contrato entre o consumidor e provedor de API; • Permite a integração de apps e dispositivos; • Permite a criação de apps com base em outros apps; • Como um plug-in universal; • Como um filtro de segurança;
  6. O ecosistema de API O Ecossistema da API O ecossistema

    básico de uma API pode ser descrito como: • Assets (Ativos); • API; • Desenvolvedores; • Softwares & Apps; • Usuário final;
  7. • IoT - O uso das APIs se torna essencial

    para o gerenciamento dos dados utilizados em IoT; • FinTech - A API tornou possível a criação de bancos mais dinâmicos com melhor integração de serviços. Ex.: NuBank; ◦ Banco Central Europeu cria o PSD2 (Payment Services Directive 2), determina que todos os bancos tenham open API. ◦ A API tem um papel vital dentro do universo criptocurrency; • Redes Sociais - possibilita melhor e uso e integração de dados; • B2B - Facilita o compartilhamento de dados que podem ser usados por outras empresas; API Economy
  8. O que é API FIRST? É uma estratégia de construção

    de APIs que descreve alguns princípios, como: • Primeira interface de usuário da aplicação; • A API vem primeiro, antes da implementação; • Deve ser bem descritiva ou auto-descritiva; • Deve ser bem construída;
  9. Benefícios da API FIRST ✖ Permite integração de vários dispositivos

    à API; ✖ Fácil criação, manutenção e refatoração de funcionalidades em APIs bem documentadas; ✖ Facilita o teste de integração; ✖ Maior escalabilidade, flexibilidade e inovação; ✖ Consistência de código; ✖ Melhora a produtividade; ✖ Melhor aderência ao Agile; ✖ Desenvolvimento desacoplado; ✖ Ambiente distribuído;
  10. Como a API agrega valor ao negócio? ✖ Promover novos

    negócios, experiências e recursos; ✖ Monetizar ativos (dados, software, funcionalidades); ✖ Oferecer suporte a vendas e marketing; ✖ Organizando códigos e estruturas monolíticas; ✖ Promove novas e melhores parcerias; ✖ Oferece a customização de serviços de terceiros;
  11. Compromisso com APIs “Haverá Netflix em qualquer dispositivo que tenha

    tela!” “ Anyone who doesn’t do this will be fired.” Jeff Bezos (Amazon)
  12. Quando Usar uma estratégia de API? Existem algumas perguntas que

    influenciam nessa decisão, como: • Qual é a principal razão para a criação da API? • Quem é o público de desenvolvedores? • Quais ativos serão disponibilizados? • Que tipo de aplicativo pode ser criado como base? • Como esta estratégia agrega valor ao seu negócio? • Como será a arquitetura da API: ◦ Segurança; ◦ Infraestrutura (Data Center ou Cloud); ◦ Estilo (REST, SOAP, GraphQL); ◦ Performance; ◦ Documentação;
  13. Mobile First VS API First Mobile First - Prioridade do

    planejamento do desenvolvimento a partir de dispositivos móveis; API First - API é construída primeiro. Permite que várias plataformas sejam construídas sob as mesmas condições;
  14. Developer Experience ✖ Foco da criação da API na UX

    (desenvolvedor); ✖ Como os desenvolvedores usarão essa interface? ✖ Defina o tipo de desenvolvedor usará a API; ✖ Exponha os objetivos da API com clareza; ✖ Certifique-se de fazer um market para desenvolvedores;
  15. API Design (Prototipagem) A prototipagem e o design de API

    permite a visualização e validação das premissas do negócio de forma ampla e fácil alteração. Algumas ferramentas para prototipação de APIs: ✖ Apiary - (apiary.io); ✖ RAML - (raml.org); ✖ SWAGGER - (swagger.io);
  16. Benefícios da Documentação de Api ✖ Projeto melhor executado; ✖

    Requisitos mais frescos e bem definidos; ✖ Serve de guia para a equipe; ✖ Facilita a interação e o compartilhamento do conhecimento entre a equipe; ✖ Facilita a previsão de mudanças;
  17. Dicas para uma boa documentação ✖ Ser de fácil entendimento

    e pesquisável; ✖ Sempre atualizada; ✖ Auto-suficiente e intuitiva; ✖ Itens fundamentais: ◦ Autenticação; ◦ Endpoints; ◦ Tratamento de erros e exceções; ✖ Itens de destaque: ◦ Termo de uso; ◦ Exemplos de código; ◦ Changelog;
  18. API Pública VS API Privada Private API Public API Melhor

    infraestrutura Apps compatíveis com diversos dispositivos Eficiência com reutilização de código Dados abertos à terceiros promovendo inovações Rápida iteração, teste e inovação Facilita o acesso aos dados sem transferência de arquivos Menos estresse com serviços da API quando são substituídos Devido à abertura dos ativos, o acesso externo torna uma preocupação
  19. Medidas de Segurança da API Identificação Autenticação Autorização API Keys

    Login e senha OAuth Tokens Session-Based Authentication Certificados, SAML HTTP Authorized Requests OAuth Tokens, JWT
  20. Monitoramento de Tráfego da API Visa o controle de custos

    de requisições e previsão contra indisponibilidades devido a sobrecarga de tráfego, garantindo velocidade e qualidade aos usuários da API através de ferramentas como: ✖ Rate Limits; ✖ Quotas; ✖ Throttling; ✖ Spike Arresting;
  21. Estilos Arquiteturais da API ✖ SOAP (Simple Object Access Protocol);

    ✖ REST (Representational State Transfer) ; ✖ HATEOAS (Hypermedia As The Engine Of Application State); ✖ RPC (Remote Procedure Call); ✖ Orientada a eventos; ✖ GraphQL;
  22. HTTP Protocolo base para Web APIs. ✖ Header; ✖ Body;

    ✖ Request / Response; ✖ Status Code; Status Code Significado Exemplos 2XX Success 200 - OK; 201 - Created; 3XX Redirect 301 - Resource moved permanently 4XX Client Error 400 - Bad Request; 404 - Not Found; 5XX Server Error 500 - Internal Server Error
  23. Estilo RPC ✖ Várias operações por endpoint; ✖ O endpoint

    contém o nome da funcionalidade; ✖ Geralmente usa apenas os verbos GET e POST; ✖ JSON-RPC, XML-RPC, gRPC GET /someoperation?data=1234 POST /anotheroperation { "data":1234; "anotherdata":"another value" }
  24. Estilo de API REST ✖ Recursos com identificação única; ✖

    Uma funcionalidade por verbo HTTP; ✖ Utiliza uma interface única para requisições; ✖ Utiliza JSON como formato padrão; ✖ Stateless GET /someresources/1234 PUT /someresources/1234 {“anotherdata”:”another value”} POST /someresources {“anotherdata”:“anothervalue”} DELETE /someresources/1234 PATCH /someresoueces/1234 {“anotherdata”:“anothervalue”}
  25. ✖ Query Language para API especificada pelo Facebook; ✖ Fortemente

    tipada; ✖ Retorna apenas o requisitado pelo cliente; ✖ Retorna vários recursos em um único request; ✖ Único endpoint; ✖ Baseado em 3 tipos de requisições (root types): ◦ query; ◦ mutation; ◦ subscription; Estilo de API GraphQL { user(id: 4) { name } } { "user": { "name": "Mark Zuckerberg" } } Request Response
  26. Performance ✖ Quanto a API está consumindo dos seus recursos?

    ✖ Quanta produtividade trouxe aos desenvolvedores? ✖ Qual é a expectativa de tráfego? ✖ Quantas novas interações por canal? ✖ Quais as métricas de request e response? ✖ Quais ferramentas disponibilizo?
  27. Teste em API ✖ Validação de dados de requisição; ✖

    Validação dos dados de resposta; ✖ Comportamento da requisição;
  28. Quando NÃO Usar API FIRST? ✖ Falta de definição sólida

    sobre o negócio; ✖ Custo alto para refatoração de sistema monolítico; ✖ Dependência de estar online; ✖ Aumento de complexidade;
  29. Conclusão A criação de APIs juntamente com a estratégia de

    API FIRST traz benefícios como: grandes oportunidades de negócio, inovações, flexibilidade, segurança, arquitetura mais sólida e desenvolvedores mais instigados e alinhados com os objetivos do negócio. Pré-requisitos para a criação de uma boa API: Alinhar os objetivos de negócio Estabelecer os perfis de desenvolvedores Definir a arquitetura da API Implantar uma infraestrutura de API