Slide 1

Slide 1 text

API First Quando usar uma estratégia de API?

Slide 2

Slide 2 text

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/

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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’ ]; }

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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;

Slide 7

Slide 7 text

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;

Slide 8

Slide 8 text

● 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

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

API First Alinhando a criação de APIs com os objetivos de negócio

Slide 11

Slide 11 text

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;

Slide 12

Slide 12 text

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;

Slide 13

Slide 13 text

Arquitetura Baseada em API

Slide 14

Slide 14 text

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;

Slide 15

Slide 15 text

Casos de Sucesso

Slide 16

Slide 16 text

Compromisso com APIs “Haverá Netflix em qualquer dispositivo que tenha tela!” “ Anyone who doesn’t do this will be fired.” Jeff Bezos (Amazon)

Slide 17

Slide 17 text

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;

Slide 18

Slide 18 text

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;

Slide 19

Slide 19 text

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;

Slide 20

Slide 20 text

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);

Slide 21

Slide 21 text

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;

Slide 22

Slide 22 text

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;

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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;

Slide 26

Slide 26 text

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;

Slide 27

Slide 27 text

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

Slide 28

Slide 28 text

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" }

Slide 29

Slide 29 text

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”}

Slide 30

Slide 30 text

✖ 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

Slide 31

Slide 31 text

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?

Slide 32

Slide 32 text

Teste em API ✖ Validação de dados de requisição; ✖ Validação dos dados de resposta; ✖ Comportamento da requisição;

Slide 33

Slide 33 text

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;

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

Referências ✖ https://nordicapis.com ✖ https://www.programmableweb.com ✖ https://cloud.google.com ✖ https://www.upwork.com ✖ https://sensedia.com ✖ https://www.ca.com

Slide 36

Slide 36 text

Thanks! Any questions? You can find me at: [email protected]