SlideShare a Scribd company logo
1 of 54
01/2023
Um pouco sobre APIs
GRUPO BOTICÁRIO INSIRA O NOME DO PROJETO 2
“The only way to do great
work is love what you do”
Steve Jobs
GRUPO BOTICÁRIO Um pouco sobre APIs
Webservices
03
3
HTTP
02
Introdução sobre API
01
SOAP
04
05
Webhook
06
07 GraphQL
REST e Restfull
GRUPO BOTICÁRIO Um pouco sobre APIs 4
Conjunto de padrões estabelecidos para
um determinado software, que oferecem
interfaces de comunicação com acesso
restrito a recursos, permitindo
comunicação ao mundo externo.
/ Application Programming Interface /
APIs
GRUPO BOTICÁRIO Um pouco sobre APIs 5
Toda API é um Webservice?
A pergunta do milhão
GRUPO BOTICÁRIO Um pouco sobre APIs 6
Definitivamente NÃO!
1968 - API no artigo “Estruturas de dados e técnicas para computação gráfica”;
1990 – Definição: Um conjunto de serviços disponíveis para executar determinadas tarefas;
2000 – Primeira utilização de APIs como estilo arquitetônico em Webservices;
Toda API é um webservice?
GRUPO BOTICÁRIO Um pouco sobre APIs 7
Exemplos de Utilização de APIs
insira foto
insira foto
insira foto insira foto
GRUPO BOTICÁRIO Um pouco sobre APIs
1. QA 2. Frontend 3. Backend
Quanto preciso me aprofundar em APIs? — Equipes de TI
8
/ lim(50%) / / lim(75%) / / lim(100%) /
Conhecimento intermediário
Deve conhecer profundamente
a tecnologia e suas limitações.
Deve aplicar profundamente o
HTTP.
Deve prever erros.
Deve ser capaz de detectar e
sugerir melhorias na API.
Conhecimento Avançado
Deve conhecer profundamente a tecnologia e suas
limitações.
Deve aplicar as boas práticas em desenvolvimento de
API.
Deve aplicar camada de segurança (authentication,
authorization, cors, etc).
Deve criar uma documentação completa e de qualidade.
Conhecimento Compartilhado
Conhecimento profundo sobre as definições de produto e necessidades
do cliente. Desenvolver e consumir documentação com qualidade.
Conhecimento básico
Deve ter conhecimento superficial
sobre HTTP para realizar testes
corretamente.
Deve testar todos os casos de uso
da API.
Deve sugerir melhoria caso perceba
endpoint fora do padrão.
GRUPO BOTICÁRIO Um pouco sobre APIs 9
É um protocolo pertencente à camada de
aplicação responsável por toda a base de
comunicação de dados para a WWW.
/ Hypertext Transfer Protocol /
HTTP
GRUPO BOTICÁRIO Um pouco sobre APIs 10
Protocolo
/ Como? /
Define como um determinado objeto
será transportado do emissor para o
receptor.
A comunicação em redes é dividida
em várias camadas (protocolos).
Entender o seu funcionamento é
fundamental para que possamos ter
qualidade em nossas decisões.
O Protocopo é o ‘b a ba’ de qualquer comunicação
Se não tivermos um bom conhecimento sobre protocolo de comunicação, não
temos condição de criar APIs de qualidade.
GRUPO BOTICÁRIO Um pouco sobre APIs 11
Interface
/ O que? /
Descrição das ações que um
determinado objeto pode fazer.
Em programação, Interface significa:
Abstração de objetos.
A Interface deve ser muito bem definida e documentada
Se não tivermos um bom conhecimento sobre protocolo de comunicação, não
temos condição de criar APIs de qualidade.
GRUPO BOTICÁRIO Um pouco sobre APIs 12
Pacote
/Quem? /
Pacote é o conjunto de dados que
serão transferidos através da rede.
A comunicação em redes é dividida
em várias camadas (protocolos).
Entender o seu funcionamento é
fundamental para que possamos ter
qualidade em nossas decisões.
O Pacote é o que você trafega na rede
Se não tivermos um bom conhecimento sobre protocolo de comunicação, não
temos condição de criar APIs de qualidade.
GRUPO BOTICÁRIO Um pouco sobre APIs 13
O Sucesso da comunicação via APIs
é determinada por esses três fatores:
1
Protocolo
Determina “como”
será realizada a
comunicação
2
Interface
Determina “o que”
será transportado
3
Pacote
Determina “quem”
será transportado
GRUPO BOTICÁRIO Um pouco sobre APIs 14
1997
/ 1.1 /
- Method: GET, HEAD, POST, PUT, PATCH,
DELETE, TRACE, OPTIONS, CONNECT
- Request: Cabeçalho metadados
- Response: content-type (vários)
- Conexão persistente, conexão segura,
Suporte a cache, pacotes particionados,
compactação, etc.
2015
/ 2.0 /
- Protocolo binário
- Multiplexado (solicitações paralelas na
msm conexão)
- Server Push
1991
/ 0.9 /
- Method: GET.
- Request: Sem cabeçalho.
- Response: Texto.
1996
/ 1.0 /
- Method : GET, POST, HEAD
- Request Cabeçalho com metadados
- Response: status, contente-type: (scripts,
css, mídia)
Versões do HTTP
2022+
/ 3.0 /
- QUIC
GRUPO BOTICÁRIO Um pouco sobre APIs 15
Request
example
GRUPO BOTICÁRIO Um pouco sobre APIs 16
Response
example
GRUPO BOTICÁRIO Um pouco sobre APIs
01 GET: Buscar
02 HEAD: Retornar cabeçalho
03 POST: Criar conteúdo
04 PUT: Guardar ou Atualizar
05 PATCH: Atualizar parcialmente
06 DELETE: Remover
07 TRACE: Testar ou Depurar
08 OPTIONS: Buscar métodos suportados para a URL
09 CONNECT: Abrir túnel de conexão
17
Method
/ HTTP 1.1 Methods /
https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
GRUPO BOTICÁRIO INSIRA O NOME DO PROJETO
01 GET http://gb.com.br/users
02 GET https://gb.com.br/user/getUsers
03 GET https://gb.com.br/listaUsuarios
04 GET https://gb.com.br/user/delete?id=1
05 POST https://gb.com.br/update/1
06 POST https://gb.com.br/users/find **
07 POST https://gb.com.br/user/delete/1
08 GET https://gb.com.br/api/v1/user
/ Equivocados na utilização de Methods /
Equi-
vocos
18
GRUPO BOTICÁRIO Um pouco sobre APIs
01 1xx – Informação
02 2xx - Sucesso
03 3xx - Redirecionamento
04 4xx – Erro cliente
05 5xx – Erro servidor
19
Status
/ HTTP 1.1 Methods /
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
GRUPO BOTICÁRIO INSIRA O NOME DO PROJETO
01 200 { erro: true }
02 200 {erro : dados não encontros }
03 500 { erro: argumento inválido }
04 404 { erro: acesso negado }
05 200 { mensagem: excluído com sucesso } **
06 200 { mensagem: excluído com sucesso } **
/ Equivocados na utilização de Status /
Equivo-
cos
20
GRUPO BOTICÁRIO Um pouco sobre APIs 21
Solução utilizada na integração de
sistemas e na comunicação entre
aplicações através da internet.
/ Definição /
Web-
service
GRUPO BOTICÁRIO Um pouco sobre APIs 22
/ REDES /
SWIFT, RPC
1970
1996
2015
2000
/ XML /
HTTP: 1.0, HTTP: 1.1, HTML, XML-RPC
/ SOAP/
WSDL, WebService, XMLHttpRequest
/ GraphQL /
Criada pelo Facebook
Linha do Tempo
/ WEBSITES /
HTTP: 0.9, WEBSITES ESTÁTICOS
1990
2006 / REST /
Após a popularização do AJAX, webHook
2011 / PADRONIZAÇÃO REST /
Surgimento do Swagger, OpenAPI Iniciative
2016 / gRPC /
Criado pelo Google
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Segurança
02 Desacoplamento
03 Conectividade
04 Simplificação
23
Benefícios
Tecnologia utilizada fortemente no mercado de TI
Webservice
GRUPO BOTICÁRIO Um pouco sobre APIs
Segurança
24
- Controle sobre as permissões de acesso a SW e HD;
- Rastreamento de requisições;
- Disponibilidade parcial de recursos;
- APIs públicas e privadas.
GRUPO BOTICÁRIO Um pouco sobre APIs
AUTENTICAÇÃO AUTORIZAÇÃO
A Autorização é mais crítica do que a Autenticação!
● A autenticação é realizada em um único canal, gera uma
token que controla acesso para todo o sistema a partir de
um middleware.
● A autorização é realizada pontualmente em cada módulo
do sistema, em cada dado que é retornado.
“Usuário ‘x’ tem permissão
de acesso ao sistema XYZ.”
“Usuário ‘x’ tem permissão
de logar no sistema ABC
porém não tem permissão
de logar no sistema XYZ”
25
Acesso / Segurança /
“Usuário ‘x’ não tem
permissão de acesso a
funcionalidade XYZ.”
“Em ipótese alguma o
cliente ‘A’ pode ter acesso a
dados do cliente ‘B’”
GRUPO BOTICÁRIO Um pouco sobre APIs
É um software que fornece serviços ou recursos
comuns em toda a aplicação
26
Middlewar
e
Extra:
GRUPO BOTICÁRIO Um pouco sobre APIs
É uma espécie de Middleware aplicado na camada de
infraestrutura.
27
API Gateway
Extra:
GRUPO BOTICÁRIO Um pouco sobre APIs
Desacoplamento
28
- Projetos granulares;
- Lógica separada do controller;
- Infraestrutura independente;
- Diversidade de tecnologias.
GRUPO BOTICÁRIO Um pouco sobre APIs
Conectividade
29
- Agilidade e compatibilidade na integração;
- Rapidez na troca de informações;
- Economia de tempo, dinheiro e dados;
- Extensão de aplicações.
GRUPO BOTICÁRIO Um pouco sobre APIs
Simplicidade
30
- Utilização de PaaS;
- Manutenção reduzida;
- Facilidade ao dimensionar recursos;
- Economia de tempo, dinheiro e dados.
GRUPO BOTICÁRIO Um pouco sobre APIs 31
/ IaaS /
Infraestrutura como Serviço
- Contratação de Infra na nuvem;
- Configuração total do servidor.
3
/ PaaS /
Plataforma como Serviço
Contratação de Plataforma -
Configuração parcial -
2
/ SaaS /
Software como Serviço
- Contratação de software pronto
- Não necessita configuração;
1
Modelos de Serviços
Extra:
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Curl > Requisições em linha de comando
02 Postman > IDE para requisições HTTP e documentação de APIs
03 Ngrok (hookbin, beeceptor.com) > Disponibiliza uma API local remotamente
04 Swagger (documentação) > Documentação, prototipação e teste de API
05 Pipedream > Criação de mocks para API
06 IDE (VSCode, IntelliJ,Eclipse) > Ferramenta com recursos avançados para desenvolvimento de sistemas
32
Ferramentas
Algumas ferramentas são imprescindíveis ao desenvolver Webservices
GRUPO BOTICÁRIO Um pouco sobre APIs 33
Protocolo de comunicação baseado em
HTTP utilizado para construção de APIs
web que permite comunicação entre
sistemas a partir de mensagens XML.
/ Simple Object Access Protocol /
Soap
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Expõe serviços através de HTTP (outros)
02 Comunicação via XML
03 Envelope de mensagem burocrático
04 WSDL define toda a estrutura do Webservice
05 Fácil importação e geração de código cliente automático
34
Caracte-
rísticas
/ Soap /
GRUPO BOTICÁRIO Um pouco sobre APIs 35
Ex.:
Soap
GRUPO BOTICÁRIO Um pouco sobre APIs 36
Estilo arquitetural para construção de
serviços Web. Permite comunicação
entre sistemas a partir de mensagens em
vários formatos: JSON, XML, Text, etc.
/ Representational State Transfer /
Rest
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Expõe serviços através de HTTP (outros)
02 Uma API define um conjunto de endpoints;
03 Comunicação tipicamente JSON (ou XML, text, etc.)
04 Troca de mensagens menos “verborrática” do que Soap
05 Documentação normalmente feita de forma manual
06 Utiliza documentação HTTP para representar transações
07 Em uma mesma URL, diferentes métodos fornecem
diferentes funcionalidades
37
Caracte-
rísticas
/ Rest /
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Utilizar corretamente do protocolo HTTP (method, status code)
02 Versionar a API
03 Nunca utilizar verbos na URL
04 Criar documentação bem definida sobre a API
05 Utilizar kebab-case na descrição da URL
06 Utilizar recursos no plural
07 Utilizar corretamente ‘casing’ nas respostas de retorno JSON
08 Utilizar o cabeçalho para envio de metadatas
09 Em caso de erros, utilizar mensagens significativas e documentadas
10 Manter a simplicidade
11 Utilização de protocolo seguro (HTTPS)
38
Boas
práticas
/ Rest /
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Host – Domínio principal que expõe a API
02 Version – Versão utilizada
03 Resource – Recurso do Sistema exposto para interação
04 Parameter – Parâmetro enviado para busca, deleção
39
End-
point
/ Características do Endpoint /
GRUPO BOTICÁRIO Um pouco sobre APIs 40
Ex.:
Rest
GRUPO BOTICÁRIO Um pouco sobre APIs 41
São definições de fatores para decidir a
maturidade de um serviço REST.
/ Definição /
RESTFul
GRUPO BOTICÁRIO Um pouco sobre APIs 42
/ URIs /
Correta aplicação da nomenclatura
nas URIs para os recursos
disponíveis
1
/ HTTP /
Correta utilização dos conceitos
HTTP (methods, status code)
2
/ HATEOAS /
Utilização de hipermídia na
exposição dos dados da APIs
3
RESTFul
GRUPO BOTICÁRIO Um pouco sobre APIs 43
Ex.:
RESTFul
https://developer.marvel.com/
GRUPO BOTICÁRIO Um pouco sobre APIs 44
Padrão que permitem cadastro de
endpoints clientes que serão chamadas a
partir da execução de eventos no
servidor.
Essas execuções podem ser únicas ou
periódicas.
/ Definição /
Web
Hook
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Cliente cadastra endpoint para determinado evento
02 Toda vez que o evento ocorrer, o endpoint será acionado
03 Elimina a utilização do “pulling”
04 Cliente recebe informação de forma passiva
05 Compartilhamento de dados em tempo real
06 Problema com tratamento de falhas e retentativas
07 Problema de segurança na garantia da mensagem
45
Caracte-
rísticas
/ Webhooks /
GRUPO BOTICÁRIO Um pouco sobre APIs 46
Ex.:
Webhooks
GRUPO BOTICÁRIO Um pouco sobre APIs 47
Framework criado pelo Facebook para
realização de consultas. Garante
obtenção de dados necessários pelo
cliente e pré-configurados pelo cliente
através de uma espécie de query.
/ Graph Query Language /
Graph-
QL
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Busca de dados através de queries
02 Interface de fácil aprendizagem e aplicação
03 Linguagem de Código aberto, rápido e flexível
04 Reduz volume de dados trafegando na rede
05 Fácil importação e geração de código cliente automático
06 Difícil lidar com consultas complexas, performance, etc
07 Não utiliza processo de cache HTTP
48
Caracte-
rísticas
/ GraphQL /
GRUPO BOTICÁRIO Um pouco sobre APIs 49
Ex.:
GraphQL
GRUPO BOTICÁRIO Um pouco sobre APIs 50
Com a popularização do webservice,
empresas criam serviços (gratuitos e
pagos) para solução de problemas
recorrentes.
/ A API se tornou plataforma de negócios /
Futuro
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Negócios abertos estão se tornando negócios normais
02 De negócios abertos para negócios open-ended
03 Plataformas de negócios e produtos de APIs se tornam centrais
04 DevOps se expande para governança adaptativa
05 O gerenciamento de API se expande além do REST
06 Low-code e cloud-native conferem agilidade na implementação
07 As arquiteturas de segurança de APIs ficam mais seguras e fortes
51
Futuro
/ 7 Tendências das APIs nos negócios /
https://www.revistaapolice.com.br/2022/02/7-tendencias-mundiais-das-apis-em-2022/
GRUPO BOTICÁRIO Um pouco sobre APIs
01 Mais plataformas para usar API-First
02 APIs padronizadas se tornam a escolha padrão para empresas
03 A segurança e a confiabilidade da API começam a amadurecer
04 A adoção de microsserviços promoverá o crescimento das APIs
05 As organizações vão acelerar sua cultura de API
06 APIs de nicho se tornam mais disponíveis
07 Surgem as arquiteturas de API híbridas
08 As APIs se tornam hiperconectadas
09 APIs e IA trabalharão juntas
10 Streaming é o novo baseado em eventos
11 Ascensão das APIs Conversacionais
52
Futuro
/ 11 tendências de API em 2023 /
https://nordicapis.com/11-trends-to-watch-in-the-api-economy-in-2023
GRUPO BOTICÁRIO Um pouco sobre APIs 53
Serviços
/ Oportunidade /
Com a popularização do webservice,
empresas criam serviços (gratuitos e
pagos) para solução de problemas
recorrentes.
The Api Landscape
https://apilandscape.apiscene.io/
GRUPO BOTICÁRIO Um pouco sobre APIs 54
As imagens, artes, vídeos ou qualquer obra sujeita à proteção de direitos autorais, ou quaisquer bens de propriedade intelectual sujeitosa direitos de terceiros, são utilizados meramente para fins ilustrativos, apenas para
demonstração, não sendo concedido ou transferido nenhum direito, autorização ou licença ao destinatário. Portanto, o material aqui contido não pode ser encaminhado, divulgado, publicado ou de qualquer forma utilizado,
sendo expressamente proibida sua utilização comercial por terceiros não autorizados. Caso haja interesse no uso de qualquer material ilustrativo, as respectivas licenças, cessões, concessõese autorizações deverão ser
obtidas diretamente com os detentores dos direitos autorais.
Obrigado!

More Related Content

Similar to Um pouco sobre APIs

WCPOA2019 - WordPress como um backend de seus aplicativos
WCPOA2019  - WordPress como um backend de seus aplicativosWCPOA2019  - WordPress como um backend de seus aplicativos
WCPOA2019 - WordPress como um backend de seus aplicativosJackson F. de A. Mafra
 
WordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosWordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosJackson F. de A. Mafra
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsHeider Lopes
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASHeider Lopes
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfBrunoAlbuquerque864673
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioFernando Palma
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfBrunoAlbuquerque864673
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesGuilherme Pereira Silva
 
Construindo ap is usando php
Construindo ap is usando phpConstruindo ap is usando php
Construindo ap is usando phpJames Miranda
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EELuan Felipe Knebel
 
Expondo APIs de back-ends legados e travados
Expondo APIs de back-ends legados e travadosExpondo APIs de back-ends legados e travados
Expondo APIs de back-ends legados e travadosFábio Rosato
 
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesPHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesiMasters
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...fabio perrella
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasCelso Crivelaro
 
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...iMasters
 
Deck apix 2017 design & security - case cielo lio
Deck apix 2017   design & security - case cielo lioDeck apix 2017   design & security - case cielo lio
Deck apix 2017 design & security - case cielo lioLuis Moraes Junior
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...BrunoSouza617
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkMario Guedes
 

Similar to Um pouco sobre APIs (20)

WCPOA2019 - WordPress como um backend de seus aplicativos
WCPOA2019  - WordPress como um backend de seus aplicativosWCPOA2019  - WordPress como um backend de seus aplicativos
WCPOA2019 - WordPress como um backend de seus aplicativos
 
WordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativosWordPress como um backend de seus aplicativos
WordPress como um backend de seus aplicativos
 
Workshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIsWorkshop do Bem: O mundo das APIs
Workshop do Bem: O mundo das APIs
 
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMASO MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
Ebook Apache Server: Guia Introdutório
Ebook Apache Server: Guia IntrodutórioEbook Apache Server: Guia Introdutório
Ebook Apache Server: Guia Introdutório
 
REST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdfREST vs GraphQL - A batalha das APIs.pdf
REST vs GraphQL - A batalha das APIs.pdf
 
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom PolicesSão Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices
 
Construindo ap is usando php
Construindo ap is usando phpConstruindo ap is usando php
Construindo ap is usando php
 
Desenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EEDesenvolvimento de uma API RESTful com Java EE
Desenvolvimento de uma API RESTful com Java EE
 
Expondo APIs de back-ends legados e travados
Expondo APIs de back-ends legados e travadosExpondo APIs de back-ends legados e travados
Expondo APIs de back-ends legados e travados
 
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integraçõesPHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
 
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...Qconsp 2016   escalando uma plataforma de e-mail transacional- aprendizado da...
Qconsp 2016 escalando uma plataforma de e-mail transacional- aprendizado da...
 
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheirasEscalando uma plataforma de e-mail transacional- aprendizado das trincheiras
Escalando uma plataforma de e-mail transacional- aprendizado das trincheiras
 
Web service
Web serviceWeb service
Web service
 
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
 
PHP nas Nuvens
PHP nas NuvensPHP nas Nuvens
PHP nas Nuvens
 
Deck apix 2017 design & security - case cielo lio
Deck apix 2017   design & security - case cielo lioDeck apix 2017   design & security - case cielo lio
Deck apix 2017 design & security - case cielo lio
 
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
 
Conhecendo o Novo REST Framework
Conhecendo o Novo REST FrameworkConhecendo o Novo REST Framework
Conhecendo o Novo REST Framework
 

More from Luiz Paulo dos Prazeres Júnior (7)

Introdução ao React
Introdução ao ReactIntrodução ao React
Introdução ao React
 
Gdg games
Gdg gamesGdg games
Gdg games
 
Desenvolvimento web - XHTML
Desenvolvimento web - XHTMLDesenvolvimento web - XHTML
Desenvolvimento web - XHTML
 
Desenvolvimento web I - CSS
Desenvolvimento web I - CSSDesenvolvimento web I - CSS
Desenvolvimento web I - CSS
 
Desenvolvimento web I - HTML
Desenvolvimento web I - HTMLDesenvolvimento web I - HTML
Desenvolvimento web I - HTML
 
Desenvolvimento web I - Introdução
Desenvolvimento web I - IntroduçãoDesenvolvimento web I - Introdução
Desenvolvimento web I - Introdução
 
Apresentacao Web2.0
Apresentacao Web2.0Apresentacao Web2.0
Apresentacao Web2.0
 

Um pouco sobre APIs

  • 2. GRUPO BOTICÁRIO INSIRA O NOME DO PROJETO 2 “The only way to do great work is love what you do” Steve Jobs
  • 3. GRUPO BOTICÁRIO Um pouco sobre APIs Webservices 03 3 HTTP 02 Introdução sobre API 01 SOAP 04 05 Webhook 06 07 GraphQL REST e Restfull
  • 4. GRUPO BOTICÁRIO Um pouco sobre APIs 4 Conjunto de padrões estabelecidos para um determinado software, que oferecem interfaces de comunicação com acesso restrito a recursos, permitindo comunicação ao mundo externo. / Application Programming Interface / APIs
  • 5. GRUPO BOTICÁRIO Um pouco sobre APIs 5 Toda API é um Webservice? A pergunta do milhão
  • 6. GRUPO BOTICÁRIO Um pouco sobre APIs 6 Definitivamente NÃO! 1968 - API no artigo “Estruturas de dados e técnicas para computação gráfica”; 1990 – Definição: Um conjunto de serviços disponíveis para executar determinadas tarefas; 2000 – Primeira utilização de APIs como estilo arquitetônico em Webservices; Toda API é um webservice?
  • 7. GRUPO BOTICÁRIO Um pouco sobre APIs 7 Exemplos de Utilização de APIs insira foto insira foto insira foto insira foto
  • 8. GRUPO BOTICÁRIO Um pouco sobre APIs 1. QA 2. Frontend 3. Backend Quanto preciso me aprofundar em APIs? — Equipes de TI 8 / lim(50%) / / lim(75%) / / lim(100%) / Conhecimento intermediário Deve conhecer profundamente a tecnologia e suas limitações. Deve aplicar profundamente o HTTP. Deve prever erros. Deve ser capaz de detectar e sugerir melhorias na API. Conhecimento Avançado Deve conhecer profundamente a tecnologia e suas limitações. Deve aplicar as boas práticas em desenvolvimento de API. Deve aplicar camada de segurança (authentication, authorization, cors, etc). Deve criar uma documentação completa e de qualidade. Conhecimento Compartilhado Conhecimento profundo sobre as definições de produto e necessidades do cliente. Desenvolver e consumir documentação com qualidade. Conhecimento básico Deve ter conhecimento superficial sobre HTTP para realizar testes corretamente. Deve testar todos os casos de uso da API. Deve sugerir melhoria caso perceba endpoint fora do padrão.
  • 9. GRUPO BOTICÁRIO Um pouco sobre APIs 9 É um protocolo pertencente à camada de aplicação responsável por toda a base de comunicação de dados para a WWW. / Hypertext Transfer Protocol / HTTP
  • 10. GRUPO BOTICÁRIO Um pouco sobre APIs 10 Protocolo / Como? / Define como um determinado objeto será transportado do emissor para o receptor. A comunicação em redes é dividida em várias camadas (protocolos). Entender o seu funcionamento é fundamental para que possamos ter qualidade em nossas decisões. O Protocopo é o ‘b a ba’ de qualquer comunicação Se não tivermos um bom conhecimento sobre protocolo de comunicação, não temos condição de criar APIs de qualidade.
  • 11. GRUPO BOTICÁRIO Um pouco sobre APIs 11 Interface / O que? / Descrição das ações que um determinado objeto pode fazer. Em programação, Interface significa: Abstração de objetos. A Interface deve ser muito bem definida e documentada Se não tivermos um bom conhecimento sobre protocolo de comunicação, não temos condição de criar APIs de qualidade.
  • 12. GRUPO BOTICÁRIO Um pouco sobre APIs 12 Pacote /Quem? / Pacote é o conjunto de dados que serão transferidos através da rede. A comunicação em redes é dividida em várias camadas (protocolos). Entender o seu funcionamento é fundamental para que possamos ter qualidade em nossas decisões. O Pacote é o que você trafega na rede Se não tivermos um bom conhecimento sobre protocolo de comunicação, não temos condição de criar APIs de qualidade.
  • 13. GRUPO BOTICÁRIO Um pouco sobre APIs 13 O Sucesso da comunicação via APIs é determinada por esses três fatores: 1 Protocolo Determina “como” será realizada a comunicação 2 Interface Determina “o que” será transportado 3 Pacote Determina “quem” será transportado
  • 14. GRUPO BOTICÁRIO Um pouco sobre APIs 14 1997 / 1.1 / - Method: GET, HEAD, POST, PUT, PATCH, DELETE, TRACE, OPTIONS, CONNECT - Request: Cabeçalho metadados - Response: content-type (vários) - Conexão persistente, conexão segura, Suporte a cache, pacotes particionados, compactação, etc. 2015 / 2.0 / - Protocolo binário - Multiplexado (solicitações paralelas na msm conexão) - Server Push 1991 / 0.9 / - Method: GET. - Request: Sem cabeçalho. - Response: Texto. 1996 / 1.0 / - Method : GET, POST, HEAD - Request Cabeçalho com metadados - Response: status, contente-type: (scripts, css, mídia) Versões do HTTP 2022+ / 3.0 / - QUIC
  • 15. GRUPO BOTICÁRIO Um pouco sobre APIs 15 Request example
  • 16. GRUPO BOTICÁRIO Um pouco sobre APIs 16 Response example
  • 17. GRUPO BOTICÁRIO Um pouco sobre APIs 01 GET: Buscar 02 HEAD: Retornar cabeçalho 03 POST: Criar conteúdo 04 PUT: Guardar ou Atualizar 05 PATCH: Atualizar parcialmente 06 DELETE: Remover 07 TRACE: Testar ou Depurar 08 OPTIONS: Buscar métodos suportados para a URL 09 CONNECT: Abrir túnel de conexão 17 Method / HTTP 1.1 Methods / https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods
  • 18. GRUPO BOTICÁRIO INSIRA O NOME DO PROJETO 01 GET http://gb.com.br/users 02 GET https://gb.com.br/user/getUsers 03 GET https://gb.com.br/listaUsuarios 04 GET https://gb.com.br/user/delete?id=1 05 POST https://gb.com.br/update/1 06 POST https://gb.com.br/users/find ** 07 POST https://gb.com.br/user/delete/1 08 GET https://gb.com.br/api/v1/user / Equivocados na utilização de Methods / Equi- vocos 18
  • 19. GRUPO BOTICÁRIO Um pouco sobre APIs 01 1xx – Informação 02 2xx - Sucesso 03 3xx - Redirecionamento 04 4xx – Erro cliente 05 5xx – Erro servidor 19 Status / HTTP 1.1 Methods / https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
  • 20. GRUPO BOTICÁRIO INSIRA O NOME DO PROJETO 01 200 { erro: true } 02 200 {erro : dados não encontros } 03 500 { erro: argumento inválido } 04 404 { erro: acesso negado } 05 200 { mensagem: excluído com sucesso } ** 06 200 { mensagem: excluído com sucesso } ** / Equivocados na utilização de Status / Equivo- cos 20
  • 21. GRUPO BOTICÁRIO Um pouco sobre APIs 21 Solução utilizada na integração de sistemas e na comunicação entre aplicações através da internet. / Definição / Web- service
  • 22. GRUPO BOTICÁRIO Um pouco sobre APIs 22 / REDES / SWIFT, RPC 1970 1996 2015 2000 / XML / HTTP: 1.0, HTTP: 1.1, HTML, XML-RPC / SOAP/ WSDL, WebService, XMLHttpRequest / GraphQL / Criada pelo Facebook Linha do Tempo / WEBSITES / HTTP: 0.9, WEBSITES ESTÁTICOS 1990 2006 / REST / Após a popularização do AJAX, webHook 2011 / PADRONIZAÇÃO REST / Surgimento do Swagger, OpenAPI Iniciative 2016 / gRPC / Criado pelo Google
  • 23. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Segurança 02 Desacoplamento 03 Conectividade 04 Simplificação 23 Benefícios Tecnologia utilizada fortemente no mercado de TI Webservice
  • 24. GRUPO BOTICÁRIO Um pouco sobre APIs Segurança 24 - Controle sobre as permissões de acesso a SW e HD; - Rastreamento de requisições; - Disponibilidade parcial de recursos; - APIs públicas e privadas.
  • 25. GRUPO BOTICÁRIO Um pouco sobre APIs AUTENTICAÇÃO AUTORIZAÇÃO A Autorização é mais crítica do que a Autenticação! ● A autenticação é realizada em um único canal, gera uma token que controla acesso para todo o sistema a partir de um middleware. ● A autorização é realizada pontualmente em cada módulo do sistema, em cada dado que é retornado. “Usuário ‘x’ tem permissão de acesso ao sistema XYZ.” “Usuário ‘x’ tem permissão de logar no sistema ABC porém não tem permissão de logar no sistema XYZ” 25 Acesso / Segurança / “Usuário ‘x’ não tem permissão de acesso a funcionalidade XYZ.” “Em ipótese alguma o cliente ‘A’ pode ter acesso a dados do cliente ‘B’”
  • 26. GRUPO BOTICÁRIO Um pouco sobre APIs É um software que fornece serviços ou recursos comuns em toda a aplicação 26 Middlewar e Extra:
  • 27. GRUPO BOTICÁRIO Um pouco sobre APIs É uma espécie de Middleware aplicado na camada de infraestrutura. 27 API Gateway Extra:
  • 28. GRUPO BOTICÁRIO Um pouco sobre APIs Desacoplamento 28 - Projetos granulares; - Lógica separada do controller; - Infraestrutura independente; - Diversidade de tecnologias.
  • 29. GRUPO BOTICÁRIO Um pouco sobre APIs Conectividade 29 - Agilidade e compatibilidade na integração; - Rapidez na troca de informações; - Economia de tempo, dinheiro e dados; - Extensão de aplicações.
  • 30. GRUPO BOTICÁRIO Um pouco sobre APIs Simplicidade 30 - Utilização de PaaS; - Manutenção reduzida; - Facilidade ao dimensionar recursos; - Economia de tempo, dinheiro e dados.
  • 31. GRUPO BOTICÁRIO Um pouco sobre APIs 31 / IaaS / Infraestrutura como Serviço - Contratação de Infra na nuvem; - Configuração total do servidor. 3 / PaaS / Plataforma como Serviço Contratação de Plataforma - Configuração parcial - 2 / SaaS / Software como Serviço - Contratação de software pronto - Não necessita configuração; 1 Modelos de Serviços Extra:
  • 32. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Curl > Requisições em linha de comando 02 Postman > IDE para requisições HTTP e documentação de APIs 03 Ngrok (hookbin, beeceptor.com) > Disponibiliza uma API local remotamente 04 Swagger (documentação) > Documentação, prototipação e teste de API 05 Pipedream > Criação de mocks para API 06 IDE (VSCode, IntelliJ,Eclipse) > Ferramenta com recursos avançados para desenvolvimento de sistemas 32 Ferramentas Algumas ferramentas são imprescindíveis ao desenvolver Webservices
  • 33. GRUPO BOTICÁRIO Um pouco sobre APIs 33 Protocolo de comunicação baseado em HTTP utilizado para construção de APIs web que permite comunicação entre sistemas a partir de mensagens XML. / Simple Object Access Protocol / Soap
  • 34. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Expõe serviços através de HTTP (outros) 02 Comunicação via XML 03 Envelope de mensagem burocrático 04 WSDL define toda a estrutura do Webservice 05 Fácil importação e geração de código cliente automático 34 Caracte- rísticas / Soap /
  • 35. GRUPO BOTICÁRIO Um pouco sobre APIs 35 Ex.: Soap
  • 36. GRUPO BOTICÁRIO Um pouco sobre APIs 36 Estilo arquitetural para construção de serviços Web. Permite comunicação entre sistemas a partir de mensagens em vários formatos: JSON, XML, Text, etc. / Representational State Transfer / Rest
  • 37. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Expõe serviços através de HTTP (outros) 02 Uma API define um conjunto de endpoints; 03 Comunicação tipicamente JSON (ou XML, text, etc.) 04 Troca de mensagens menos “verborrática” do que Soap 05 Documentação normalmente feita de forma manual 06 Utiliza documentação HTTP para representar transações 07 Em uma mesma URL, diferentes métodos fornecem diferentes funcionalidades 37 Caracte- rísticas / Rest /
  • 38. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Utilizar corretamente do protocolo HTTP (method, status code) 02 Versionar a API 03 Nunca utilizar verbos na URL 04 Criar documentação bem definida sobre a API 05 Utilizar kebab-case na descrição da URL 06 Utilizar recursos no plural 07 Utilizar corretamente ‘casing’ nas respostas de retorno JSON 08 Utilizar o cabeçalho para envio de metadatas 09 Em caso de erros, utilizar mensagens significativas e documentadas 10 Manter a simplicidade 11 Utilização de protocolo seguro (HTTPS) 38 Boas práticas / Rest /
  • 39. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Host – Domínio principal que expõe a API 02 Version – Versão utilizada 03 Resource – Recurso do Sistema exposto para interação 04 Parameter – Parâmetro enviado para busca, deleção 39 End- point / Características do Endpoint /
  • 40. GRUPO BOTICÁRIO Um pouco sobre APIs 40 Ex.: Rest
  • 41. GRUPO BOTICÁRIO Um pouco sobre APIs 41 São definições de fatores para decidir a maturidade de um serviço REST. / Definição / RESTFul
  • 42. GRUPO BOTICÁRIO Um pouco sobre APIs 42 / URIs / Correta aplicação da nomenclatura nas URIs para os recursos disponíveis 1 / HTTP / Correta utilização dos conceitos HTTP (methods, status code) 2 / HATEOAS / Utilização de hipermídia na exposição dos dados da APIs 3 RESTFul
  • 43. GRUPO BOTICÁRIO Um pouco sobre APIs 43 Ex.: RESTFul https://developer.marvel.com/
  • 44. GRUPO BOTICÁRIO Um pouco sobre APIs 44 Padrão que permitem cadastro de endpoints clientes que serão chamadas a partir da execução de eventos no servidor. Essas execuções podem ser únicas ou periódicas. / Definição / Web Hook
  • 45. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Cliente cadastra endpoint para determinado evento 02 Toda vez que o evento ocorrer, o endpoint será acionado 03 Elimina a utilização do “pulling” 04 Cliente recebe informação de forma passiva 05 Compartilhamento de dados em tempo real 06 Problema com tratamento de falhas e retentativas 07 Problema de segurança na garantia da mensagem 45 Caracte- rísticas / Webhooks /
  • 46. GRUPO BOTICÁRIO Um pouco sobre APIs 46 Ex.: Webhooks
  • 47. GRUPO BOTICÁRIO Um pouco sobre APIs 47 Framework criado pelo Facebook para realização de consultas. Garante obtenção de dados necessários pelo cliente e pré-configurados pelo cliente através de uma espécie de query. / Graph Query Language / Graph- QL
  • 48. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Busca de dados através de queries 02 Interface de fácil aprendizagem e aplicação 03 Linguagem de Código aberto, rápido e flexível 04 Reduz volume de dados trafegando na rede 05 Fácil importação e geração de código cliente automático 06 Difícil lidar com consultas complexas, performance, etc 07 Não utiliza processo de cache HTTP 48 Caracte- rísticas / GraphQL /
  • 49. GRUPO BOTICÁRIO Um pouco sobre APIs 49 Ex.: GraphQL
  • 50. GRUPO BOTICÁRIO Um pouco sobre APIs 50 Com a popularização do webservice, empresas criam serviços (gratuitos e pagos) para solução de problemas recorrentes. / A API se tornou plataforma de negócios / Futuro
  • 51. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Negócios abertos estão se tornando negócios normais 02 De negócios abertos para negócios open-ended 03 Plataformas de negócios e produtos de APIs se tornam centrais 04 DevOps se expande para governança adaptativa 05 O gerenciamento de API se expande além do REST 06 Low-code e cloud-native conferem agilidade na implementação 07 As arquiteturas de segurança de APIs ficam mais seguras e fortes 51 Futuro / 7 Tendências das APIs nos negócios / https://www.revistaapolice.com.br/2022/02/7-tendencias-mundiais-das-apis-em-2022/
  • 52. GRUPO BOTICÁRIO Um pouco sobre APIs 01 Mais plataformas para usar API-First 02 APIs padronizadas se tornam a escolha padrão para empresas 03 A segurança e a confiabilidade da API começam a amadurecer 04 A adoção de microsserviços promoverá o crescimento das APIs 05 As organizações vão acelerar sua cultura de API 06 APIs de nicho se tornam mais disponíveis 07 Surgem as arquiteturas de API híbridas 08 As APIs se tornam hiperconectadas 09 APIs e IA trabalharão juntas 10 Streaming é o novo baseado em eventos 11 Ascensão das APIs Conversacionais 52 Futuro / 11 tendências de API em 2023 / https://nordicapis.com/11-trends-to-watch-in-the-api-economy-in-2023
  • 53. GRUPO BOTICÁRIO Um pouco sobre APIs 53 Serviços / Oportunidade / Com a popularização do webservice, empresas criam serviços (gratuitos e pagos) para solução de problemas recorrentes. The Api Landscape https://apilandscape.apiscene.io/
  • 54. GRUPO BOTICÁRIO Um pouco sobre APIs 54 As imagens, artes, vídeos ou qualquer obra sujeita à proteção de direitos autorais, ou quaisquer bens de propriedade intelectual sujeitosa direitos de terceiros, são utilizados meramente para fins ilustrativos, apenas para demonstração, não sendo concedido ou transferido nenhum direito, autorização ou licença ao destinatário. Portanto, o material aqui contido não pode ser encaminhado, divulgado, publicado ou de qualquer forma utilizado, sendo expressamente proibida sua utilização comercial por terceiros não autorizados. Caso haja interesse no uso de qualquer material ilustrativo, as respectivas licenças, cessões, concessõese autorizações deverão ser obtidas diretamente com os detentores dos direitos autorais. Obrigado!

Editor's Notes

  1. - Pedir formulários
  2. Definição “adaptada” por mim
  3. CURIOSIDADE: 1940 Cientistas de uma biblioteca de software armazenavam SUB-ROTINAS em FITAS DE PAPEL e organizadas em um ARQUIVO. E chamavam de API.
  4. - Logistica - Idioma - Redes
  5. - Liquidificador - Tomada - Interruptor - Chave do carro
  6. - Logistica - Idioma - Redes
  7. - Logistica - Idioma - Redes
  8. - Logistica - Idioma - Redes
  9. 1970 a 1990 - Troca informações através de arquivos, ex: Padrão SWIFT 1990 - RPC (Remote Procedure Calls), Solicitação de requisição remota a uma outra máquina. Surgiu Padrão CORBA (AGNÓSTICO), RMI (JAVA), DCOM (MS) 1990 - Primeiros sites (padrão requisição resposta) 1997 - Uso de XML como marcação de conteúdo (HTML, por exemplo) 1999 - XML-RPC - Protocolço de chamadas remotas utilizando XML como formato de codificação 2000 - SOAP - Simple Object Access Protocol, utiliza metodo GET e POST. Criação do WSDL para tentar definir regras sobre o protocopo de determinado webservice. 2005 - AJAX - Transição entre o XML para JSPN 2006 - Rest ou Restful APIs XML + SOAP JSON + REST 2006 REST 2011 - Swagger - JSON para criação de documentação 2015 - GraphQL 2016 - OpenAPI - Organização criada para descrição de API 2017 - gRPC - Criado pelo Google pensando em performance para transação de maça muito grande de dados. Ainda não é suportado por browsers. 2013 - SWAGGER 2014 - SWAGGER 2.0 2016 - OpenAPI