SlideShare uma empresa Scribd logo
Design de APIs na vida real:
Aquilo que você não vê nos livros
Rafael Rocha
rafael.rocha@sensedia.com
+55 19 3705-5775
+55 19 9 9649-1506
Mario Mancuso
mario.mancuso@sensedia.com
+55 19 3705-5775
+55 19 9 8123-0516
Mario Mancuso
● Consultor Sr. Sensedia
● Especialista de APIs
● Arquiteto de integração
Rafael Rocha
● Consultor Sr. Sensedia
● Especialista de APIs
● Arquiteto de Soluções
Banco Digital Sensedia
Estudo de Caso - Banco Digital Sensedia
Conta
Extrato
Paga-
mentos
Transfe-
rencias
Saldo
BANK
DIGITAL
Inovação aberta
& plataformas
Ecossistema de
parceiros digitais
Experiências digitais:
Mobile & IoT
Cenários
Existe um
backend
acessivél
apenas por
interfaces web
que necessitam
de um browser.
Luz no fim do
tunel…
O backend
existe e possui
interfaces
amistosas.
Nada Existe.
Tudo será
NOVO. uhuuuuu
Integrado por XMLVisto por uma TelaPerfeito1 2 3
E agora? O
backend está
construído em
tecnologias
antigas com
interfaces pouco
amigáveis para
os tempos
atuais
Tecnologia Ancestral4
Premissas
APIs
Design
RESTful
Segurança
Premissas - APIs
Backend
APIs
The Digital Glue
Integrações
com Aplicações
SaaS
Aplicações
Móveis
Internet
of Things
Inovação
Ecossistema
de Parceiros
Digitais
Premissas - Princípios Básicos de Design de APIs
REST/JSON
Versionamento
Caching
Resources
Erros
Callbacks
Operações
Filtros e Paginação
Hypermedia
Adicional - Consumo de APIs
Simplicidade
APIs que sejam fáceis de
entender e consumir
“Se você tiver que explicar
uma API, então você não tem
uma API.”
Rapidez
APIs que tenham bons
tempos de resposta
Confiabilidade
APIs que sejam sempre
disponíveis e confiáveis
As três principais características valorizadas pelos consumidores de APIs
Fonte: State of API Report 2016, SmartBear
Cenário 1 - Perfeito
Cenário 1 - Perfeito
➔ Simplicidade
➔ Reusabilidade
➔ Extensibilidade
➔ Consistência
➔ Manutenabilidade
API First Pattern{API}
Top
Down
Cenário 1 - Perfeito | Design RESTful
Status Code 2xx
Status Code 4xx
Status Code 5xx
400
401
403
404
422
Bad Request
Unauthorized
Forbidden
Not Found
Unprocessable Entity
500 Internal Server Error
200
201
204
OK
Created
No Content
Cenário 1 - Perfeito | API First
Top
Down
Cenário 1 - Perfeito | Solução Técnica
http http http
API Gateway
Troubleshooting
Cache
Optimization
Security
Monitoring
Translation
Composition
Mockup
RESTful API
Interaction Channel
API Management
Microservices
Cenário 2 - Visto por uma Tela
Cenário 2 - Visto por uma Tela
Backend
Web Browser
Cenário 2 - Visto por uma Tela | Modelos
UI Generator
Business
Services, Data...
User Interface
Web Browser
HTTP
Requests
HTML +
CSS
Web Server
Business
Services, Data...
User Interface
Web Browser
HTTP
Requests
UI fragments Raw
XML/Json data
Ajax Engine
Business
Services, Data...
User Interface
Web Browser
HTTP
Requests
Raw Json data
MVC Engine
Model 1: classic web application Model 2: AJAX web application Model 3: client-side MVC web application
1990 2006 2012Application Server Application Server Application Server
Cenário 2 - Visto por uma Tela | Solução Técnica
API Gateway
RESTful API
Interaction Channel
API Management
Backend
App Web Format
(XML, HTML,
JSON)
App Web Format
(XML, HTML,
JSON)
Parse: Json to
App Web
Format (req)
and App Web
Format to Json
(resp)
Cenário 2 - Visto por uma Tela | Design RESTful
Legacy
Expose Objects
JSON
Down
Top
Legacy
Expose Objects
JSON
Bottom
Up
Ou
Cenário 2 - Visto por uma Tela | Desvantagens
Pontos de Atenção
Tela pode mudar o layout/navegação e “quebrar” o contrato.
Sessão do Navegador.
1
Aplicação não pode estar preparada para escalar.2
3
Melhor cenário de uso é em MVPs.4
Cenário 3 - Integrado por XML
Cenário 3 - Integrado por XML
Backend
Web ServicesWeb Browser
<soap>
<header/>
<body>
<getAccount>
<agency>2331</agency>
<number>346677</number>
</getAccount>
</body>
</soap>
Cenário 3 - Integrado por XML | Solução Técnica
API Gateway
RESTful API
Interaction Channel
API Management
Backend
HTTP POST - XML
Format
200 Ok or 500 Error
- XML Format
Parse: Json to
XML (req) and
XML to Json
(resp)
Cenário 3 - Integrado por XML | Design RESTful?
API Gateway
Backend
[GET] https://api.sensedia.com/bank/v1/getAccount
[GET] https://api.sensedia.com/bank/v1/getBalance
[POST] https://api.sensedia.com/bank/v1/createAccount
[POST] https://api.sensedia.com/bank/v1/createDebit
[POST] https://api.sensedia.com/bank/v1/createCredit
Cenário 3 - Integrado por XML | Design RESTful
Cenário 3 - Integrado por XML | Desvantagens
Pontos de Atenção
Levar a "verbalização" das operações do WS para os recursos da API.
Simplificar a estrutura de dados do WS - cuidado com o aninhamento.
1
Tratar erros da maneira adequada para o formato de API pode se tornar
uma tarefa "pesada" .
2
3
Versionamento do WS4
Cenário 4 - Tecnologia Ancestral
Cenário 4 - Tecnologia Ancestral
Backend
User Interface
00000000000000
000
.. MNOP0060
0050236039630000
0501400000000000
0000000000000012
0450310201607111
0000000000001
6370396300000000
0004052 000000
Cenário 4 - Tecnologia Ancestral | Solução Técnica
API Gateway
RESTful API
Interaction Channel
API Management
Backend
Positional String
Format
Positional String
Format
Parse: Json to
String (req) and
String to Json
(resp)
Cenário 4 - Tecnologia Ancestral | Solução Técnica
API Gateway
RESTful API
Interaction Channel
API Management
Backend
Positional String
Format
Positional String
Format
Parse: Json to
String (req) and
String to Json
(resp)
Cenário 4 - Tecnologia Ancestral | Solução Técnica
API Gateway
RESTful API
Interaction Channel
API Management
Backend
API Facade
Mediate
API Front
Parse: Json to
String (req) and
String to Json
(resp)
Cenário 4 - Tecnologia Ancestral | Solução Técnica
API Gateway
RESTful API
Interaction Channel
API Management
Backend
Micro API Front
Legacy
Micro-Front
Gateway
Cenário 4 - Tecnologia Ancestral | Desvantagens
Pontos de Atenção
Mais uma camada para gerenciar: latência e problemas.
Não reinventar a roda! Usar padrões, linguagens e frameworks
consolidados.
1
Infraestrutura para o Front?2
3
Deve ter baixa complexidade de fácil entendimento, opte pelo simples!4
Cenário 5 (bônus) - BFF + GraphQL
Cenário 5 - APIs para Front-End
Backend
API Gateway
GET /customers/{id}
{
“name”: “Rafael Rocha”,
“address”: “Rua X”,
“birthday”: “81/10/21”
}
GET /accounts/{id}
{
“agency”: “145”,
“number”: “010203”,
“type”: “cc”,
“activeSince”: “18/02/01”
}
GET /accounts/{id}/balances
{
“totalAmount”:
“10001.00”,
“lastUpdate”: “18/02/01”
}
Cenário 5 - Pattern BFF
Cenário 5 - BFF com GraphQL
Account
Enterprise
API
(REST)
Front-End
Applications
Legacy
Systems
Enterprise Services
Backend for
FrontEnd APIs
GraphQL
Engine
FrontEnd
APIs
(GraphQL)
Balance
Enterprise
API
(REST) Legacy
Systems
Customer
Enterprise
API
(REST) Legacy
Systems
query
BalancesForCustomer {
customer(id: 1) {
name
accounts {
type
balances {
totalAmount
}
}
}
}
Cenário 5 - Desvantagens
Pontos de Atenção
Mais uma camada para gerenciar: latência e problemas.
Mais uma tecnologia para aprender e prover
infraestrutura.
1
APIs praticamente não reutilizáveis.2
3
We are hiring!
sensedia.com/carreira
Consultoria | P&D |
Marketing | RH | Adm
Campinas | Rio | São Paulo
Obrigado!
Rafael Rocha
rafael.rocha@sensedia.com
+55 19 3705-5775
+55 19 9 9649-1506
Mario Mancuso
mario.mancuso@sensedia.com
+55 19 3705-5775
+55 19 9 8123-0516

Mais conteúdo relacionado

PDF
Impacto das mega tendências io t, cloud e mobile na arquitetura das grandes e...
PDF
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
PDF
Expondo APIs de back-ends legados e travados
PDF
Os 7 Pecados Capitais na exposição de APIs RESTful
PDF
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
PDF
Workshop Hands-On APIX 2018 - Trilha Básica
PDF
Rest api vs SOAP
PPTX
Palestra Sobre REST
Impacto das mega tendências io t, cloud e mobile na arquitetura das grandes e...
DevCommerce Conference 2016 - Workshop: Velocidade e confiabilidade em e-comm...
Expondo APIs de back-ends legados e travados
Os 7 Pecados Capitais na exposição de APIs RESTful
PHP Experience 2016 - [Workshop] APIs bem desenhadas como base para integrações
Workshop Hands-On APIX 2018 - Trilha Básica
Rest api vs SOAP
Palestra Sobre REST

Semelhante a Deck QCON SP 2018 (20)

PDF
Desenvolvimento de software baseado em API's
PDF
Repensando o ESB: sua arquitetura SOA, usando APIs
PDF
Restful considerada prejudicial - parte 1
PDF
Workshop do Bem: O mundo das APIs
PDF
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
PDF
Navegando em um mar de siglas do mundo java
PDF
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
PDF
APIs gerenciadas de ponta a ponta
PDF
APIs gerenciadas de ponta a ponta
PDF
Considerações técnicas para atlas temáticos digitais e interfaces para dados ...
PDF
Atlas Digitais e interfaces para dados abertos
PPTX
Web service
PDF
Construindo ap is usando php
PPTX
introdução a web-api para iniciantes.pptx
PPTX
Introdução ao ASP .NET Web API
PPT
PDF
Rest Teoria E Pratica
PDF
Arquitetura Web Desacoplada - FCI/Mackenzie
PPTX
Web Services
PDF
Economia das APIs - Uma visão de negócios
Desenvolvimento de software baseado em API's
Repensando o ESB: sua arquitetura SOA, usando APIs
Restful considerada prejudicial - parte 1
Workshop do Bem: O mundo das APIs
O MUNDO DAS APIS OTIMIZANDO A INTEGRAÇÃO DE SISTEMAS
Navegando em um mar de siglas do mundo java
INTEGRAÇÃO DE APLICAÇÃO ANDROID COM WEB SERVICES REST
APIs gerenciadas de ponta a ponta
APIs gerenciadas de ponta a ponta
Considerações técnicas para atlas temáticos digitais e interfaces para dados ...
Atlas Digitais e interfaces para dados abertos
Web service
Construindo ap is usando php
introdução a web-api para iniciantes.pptx
Introdução ao ASP .NET Web API
Rest Teoria E Pratica
Arquitetura Web Desacoplada - FCI/Mackenzie
Web Services
Economia das APIs - Uma visão de negócios
Anúncio

Último (11)

PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Utilizando code blockes por andre backes
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Mecânico de Manutenção de Equipamentos.pptx
PPTX
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Utilizando code blockes por andre backes
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Eng. Software - pontos essenciais para o início
Como-se-implementa-um-softwareeeeeeeeeeeeeeeeeeeeeeeee.pptx
Manejo integrado de pragas na cultura do algodão
Mecânico de Manutenção de Equipamentos.pptx
Gestao-de-Bugs-em-Software-Introducao.pptxxxxxxxx
Arquitetura de computadores - Memórias Secundárias
Viasol Energia Solar -Soluções para geração e economia de energia
Anúncio

Deck QCON SP 2018

  • 1. Design de APIs na vida real: Aquilo que você não vê nos livros Rafael Rocha rafael.rocha@sensedia.com +55 19 3705-5775 +55 19 9 9649-1506 Mario Mancuso mario.mancuso@sensedia.com +55 19 3705-5775 +55 19 9 8123-0516
  • 2. Mario Mancuso ● Consultor Sr. Sensedia ● Especialista de APIs ● Arquiteto de integração Rafael Rocha ● Consultor Sr. Sensedia ● Especialista de APIs ● Arquiteto de Soluções
  • 4. Estudo de Caso - Banco Digital Sensedia Conta Extrato Paga- mentos Transfe- rencias Saldo BANK DIGITAL Inovação aberta & plataformas Ecossistema de parceiros digitais Experiências digitais: Mobile & IoT
  • 5. Cenários Existe um backend acessivél apenas por interfaces web que necessitam de um browser. Luz no fim do tunel… O backend existe e possui interfaces amistosas. Nada Existe. Tudo será NOVO. uhuuuuu Integrado por XMLVisto por uma TelaPerfeito1 2 3 E agora? O backend está construído em tecnologias antigas com interfaces pouco amigáveis para os tempos atuais Tecnologia Ancestral4
  • 7. Premissas - APIs Backend APIs The Digital Glue Integrações com Aplicações SaaS Aplicações Móveis Internet of Things Inovação Ecossistema de Parceiros Digitais
  • 8. Premissas - Princípios Básicos de Design de APIs REST/JSON Versionamento Caching Resources Erros Callbacks Operações Filtros e Paginação Hypermedia
  • 9. Adicional - Consumo de APIs Simplicidade APIs que sejam fáceis de entender e consumir “Se você tiver que explicar uma API, então você não tem uma API.” Rapidez APIs que tenham bons tempos de resposta Confiabilidade APIs que sejam sempre disponíveis e confiáveis As três principais características valorizadas pelos consumidores de APIs Fonte: State of API Report 2016, SmartBear
  • 10. Cenário 1 - Perfeito
  • 11. Cenário 1 - Perfeito ➔ Simplicidade ➔ Reusabilidade ➔ Extensibilidade ➔ Consistência ➔ Manutenabilidade API First Pattern{API} Top Down
  • 12. Cenário 1 - Perfeito | Design RESTful Status Code 2xx Status Code 4xx Status Code 5xx 400 401 403 404 422 Bad Request Unauthorized Forbidden Not Found Unprocessable Entity 500 Internal Server Error 200 201 204 OK Created No Content
  • 13. Cenário 1 - Perfeito | API First Top Down
  • 14. Cenário 1 - Perfeito | Solução Técnica http http http API Gateway Troubleshooting Cache Optimization Security Monitoring Translation Composition Mockup RESTful API Interaction Channel API Management Microservices
  • 15. Cenário 2 - Visto por uma Tela
  • 16. Cenário 2 - Visto por uma Tela Backend Web Browser
  • 17. Cenário 2 - Visto por uma Tela | Modelos UI Generator Business Services, Data... User Interface Web Browser HTTP Requests HTML + CSS Web Server Business Services, Data... User Interface Web Browser HTTP Requests UI fragments Raw XML/Json data Ajax Engine Business Services, Data... User Interface Web Browser HTTP Requests Raw Json data MVC Engine Model 1: classic web application Model 2: AJAX web application Model 3: client-side MVC web application 1990 2006 2012Application Server Application Server Application Server
  • 18. Cenário 2 - Visto por uma Tela | Solução Técnica API Gateway RESTful API Interaction Channel API Management Backend App Web Format (XML, HTML, JSON) App Web Format (XML, HTML, JSON) Parse: Json to App Web Format (req) and App Web Format to Json (resp)
  • 19. Cenário 2 - Visto por uma Tela | Design RESTful Legacy Expose Objects JSON Down Top Legacy Expose Objects JSON Bottom Up Ou
  • 20. Cenário 2 - Visto por uma Tela | Desvantagens Pontos de Atenção Tela pode mudar o layout/navegação e “quebrar” o contrato. Sessão do Navegador. 1 Aplicação não pode estar preparada para escalar.2 3 Melhor cenário de uso é em MVPs.4
  • 21. Cenário 3 - Integrado por XML
  • 22. Cenário 3 - Integrado por XML Backend Web ServicesWeb Browser <soap> <header/> <body> <getAccount> <agency>2331</agency> <number>346677</number> </getAccount> </body> </soap>
  • 23. Cenário 3 - Integrado por XML | Solução Técnica API Gateway RESTful API Interaction Channel API Management Backend HTTP POST - XML Format 200 Ok or 500 Error - XML Format Parse: Json to XML (req) and XML to Json (resp)
  • 24. Cenário 3 - Integrado por XML | Design RESTful? API Gateway Backend [GET] https://api.sensedia.com/bank/v1/getAccount [GET] https://api.sensedia.com/bank/v1/getBalance [POST] https://api.sensedia.com/bank/v1/createAccount [POST] https://api.sensedia.com/bank/v1/createDebit [POST] https://api.sensedia.com/bank/v1/createCredit
  • 25. Cenário 3 - Integrado por XML | Design RESTful
  • 26. Cenário 3 - Integrado por XML | Desvantagens Pontos de Atenção Levar a "verbalização" das operações do WS para os recursos da API. Simplificar a estrutura de dados do WS - cuidado com o aninhamento. 1 Tratar erros da maneira adequada para o formato de API pode se tornar uma tarefa "pesada" . 2 3 Versionamento do WS4
  • 27. Cenário 4 - Tecnologia Ancestral
  • 28. Cenário 4 - Tecnologia Ancestral Backend User Interface 00000000000000 000 .. MNOP0060 0050236039630000 0501400000000000 0000000000000012 0450310201607111 0000000000001 6370396300000000 0004052 000000
  • 29. Cenário 4 - Tecnologia Ancestral | Solução Técnica API Gateway RESTful API Interaction Channel API Management Backend Positional String Format Positional String Format Parse: Json to String (req) and String to Json (resp)
  • 30. Cenário 4 - Tecnologia Ancestral | Solução Técnica API Gateway RESTful API Interaction Channel API Management Backend Positional String Format Positional String Format Parse: Json to String (req) and String to Json (resp)
  • 31. Cenário 4 - Tecnologia Ancestral | Solução Técnica API Gateway RESTful API Interaction Channel API Management Backend API Facade Mediate API Front Parse: Json to String (req) and String to Json (resp)
  • 32. Cenário 4 - Tecnologia Ancestral | Solução Técnica API Gateway RESTful API Interaction Channel API Management Backend Micro API Front Legacy Micro-Front Gateway
  • 33. Cenário 4 - Tecnologia Ancestral | Desvantagens Pontos de Atenção Mais uma camada para gerenciar: latência e problemas. Não reinventar a roda! Usar padrões, linguagens e frameworks consolidados. 1 Infraestrutura para o Front?2 3 Deve ter baixa complexidade de fácil entendimento, opte pelo simples!4
  • 34. Cenário 5 (bônus) - BFF + GraphQL
  • 35. Cenário 5 - APIs para Front-End Backend API Gateway GET /customers/{id} { “name”: “Rafael Rocha”, “address”: “Rua X”, “birthday”: “81/10/21” } GET /accounts/{id} { “agency”: “145”, “number”: “010203”, “type”: “cc”, “activeSince”: “18/02/01” } GET /accounts/{id}/balances { “totalAmount”: “10001.00”, “lastUpdate”: “18/02/01” }
  • 36. Cenário 5 - Pattern BFF
  • 37. Cenário 5 - BFF com GraphQL Account Enterprise API (REST) Front-End Applications Legacy Systems Enterprise Services Backend for FrontEnd APIs GraphQL Engine FrontEnd APIs (GraphQL) Balance Enterprise API (REST) Legacy Systems Customer Enterprise API (REST) Legacy Systems query BalancesForCustomer { customer(id: 1) { name accounts { type balances { totalAmount } } } }
  • 38. Cenário 5 - Desvantagens Pontos de Atenção Mais uma camada para gerenciar: latência e problemas. Mais uma tecnologia para aprender e prover infraestrutura. 1 APIs praticamente não reutilizáveis.2 3
  • 39. We are hiring! sensedia.com/carreira Consultoria | P&D | Marketing | RH | Adm Campinas | Rio | São Paulo
  • 40. Obrigado! Rafael Rocha rafael.rocha@sensedia.com +55 19 3705-5775 +55 19 9 9649-1506 Mario Mancuso mario.mancuso@sensedia.com +55 19 3705-5775 +55 19 9 8123-0516