O documento fornece uma introdução sobre APIs, abordando conceitos como HTTP, REST, SOAP, Webhooks e GraphQL. Inclui exemplos de uso correto e incorreto de métodos HTTP, códigos de status e endpoints RESTful. Também discute ferramentas, boas práticas, segurança e outros tópicos relacionados a 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
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 /
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 /
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 /
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 /
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
- Pedir formulários
Definição “adaptada” por mim
CURIOSIDADE: 1940 Cientistas de uma biblioteca de software armazenavam SUB-ROTINAS em FITAS DE PAPEL e organizadas em um ARQUIVO. E chamavam de API.
- Logistica- Idioma- Redes
- Liquidificador- Tomada- Interruptor- Chave do carro
- Logistica- Idioma- Redes
- Logistica- Idioma- Redes
- Logistica- Idioma- Redes
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