SlideShare uma empresa Scribd logo
1 de 40
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

Semelhante a Deck QCON SP 2018

Minicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTIMinicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTImarcochella
 
Community Webcast: Portal Silverlight Brasil - Criando Aplicativos Ricos Para...
Community Webcast: Portal Silverlight Brasil - Criando Aplicativos Ricos Para...Community Webcast: Portal Silverlight Brasil - Criando Aplicativos Ricos Para...
Community Webcast: Portal Silverlight Brasil - Criando Aplicativos Ricos Para...Fabian Gehrke
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Rodrigo Kono
 
Fatec 2016 - Case Hackathon Campinas
Fatec 2016 - Case Hackathon CampinasFatec 2016 - Case Hackathon Campinas
Fatec 2016 - Case Hackathon CampinasClaudenir Freitas
 
Monitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMonitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMarkus Christen
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
Desenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NETDesenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NETGustavo Malheiros
 
Vida longa para SOA com microservices
Vida longa para SOA com microservicesVida longa para SOA com microservices
Vida longa para SOA com microservicesFábio Rosato
 
Mobile Ria Para Aplicacoes Para Negocios
Mobile Ria Para Aplicacoes Para NegociosMobile Ria Para Aplicacoes Para Negocios
Mobile Ria Para Aplicacoes Para NegociosRodney Repullo
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...tdc-globalcode
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftLuciano Condé
 
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)Giovanni Bassi
 
Uma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesUma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesMarkus Christen
 
Development of structural applications using web based technologies
Development of structural applications using web based technologiesDevelopment of structural applications using web based technologies
Development of structural applications using web based technologiesRui Barros
 
Javascript State of the Union 2015
Javascript State of the Union 2015Javascript State of the Union 2015
Javascript State of the Union 2015Huge
 
SharePoint 2010, Porque Adotar?
SharePoint 2010, Porque Adotar?SharePoint 2010, Porque Adotar?
SharePoint 2010, Porque Adotar?Wagner Amorim
 
Testes em uma arquitetura com messageria/streaming (Kafka)
Testes em uma arquitetura com messageria/streaming (Kafka)Testes em uma arquitetura com messageria/streaming (Kafka)
Testes em uma arquitetura com messageria/streaming (Kafka)Robson Agapito Correa
 

Semelhante a Deck QCON SP 2018 (20)

Minicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTIMinicurso IOT com javascript - SBTI
Minicurso IOT com javascript - SBTI
 
IBM WebSphere Portal
IBM WebSphere PortalIBM WebSphere Portal
IBM WebSphere Portal
 
Community Webcast: Portal Silverlight Brasil - Criando Aplicativos Ricos Para...
Community Webcast: Portal Silverlight Brasil - Criando Aplicativos Ricos Para...Community Webcast: Portal Silverlight Brasil - Criando Aplicativos Ricos Para...
Community Webcast: Portal Silverlight Brasil - Criando Aplicativos Ricos Para...
 
Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3Surpreenda-se com o Silverlight 3
Surpreenda-se com o Silverlight 3
 
Fatec 2016 - Case Hackathon Campinas
Fatec 2016 - Case Hackathon CampinasFatec 2016 - Case Hackathon Campinas
Fatec 2016 - Case Hackathon Campinas
 
Ix ws allan
Ix ws allanIx ws allan
Ix ws allan
 
Monitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMonitoração de Aplicações Distribuídas
Monitoração de Aplicações Distribuídas
 
SpugRIA
SpugRIASpugRIA
SpugRIA
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
Desenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NETDesenvolvimento de Software na Plataforma Microsoft .NET
Desenvolvimento de Software na Plataforma Microsoft .NET
 
Vida longa para SOA com microservices
Vida longa para SOA com microservicesVida longa para SOA com microservices
Vida longa para SOA com microservices
 
Mobile Ria Para Aplicacoes Para Negocios
Mobile Ria Para Aplicacoes Para NegociosMobile Ria Para Aplicacoes Para Negocios
Mobile Ria Para Aplicacoes Para Negocios
 
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
TDC2016SP - Revitalizando aplicações desktop usando CefGlue, MessageBus e Rea...
 
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da MicrosoftComparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
Comparacao Estrategica sobre as Tecnologias de Acesso a Dados da Microsoft
 
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
ASP.NET MVC com jQuery (Retome o controle da sua aplicação web)
 
Uma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicaçõesUma visão geral sobre a plataforma de aplicações
Uma visão geral sobre a plataforma de aplicações
 
Development of structural applications using web based technologies
Development of structural applications using web based technologiesDevelopment of structural applications using web based technologies
Development of structural applications using web based technologies
 
Javascript State of the Union 2015
Javascript State of the Union 2015Javascript State of the Union 2015
Javascript State of the Union 2015
 
SharePoint 2010, Porque Adotar?
SharePoint 2010, Porque Adotar?SharePoint 2010, Porque Adotar?
SharePoint 2010, Porque Adotar?
 
Testes em uma arquitetura com messageria/streaming (Kafka)
Testes em uma arquitetura com messageria/streaming (Kafka)Testes em uma arquitetura com messageria/streaming (Kafka)
Testes em uma arquitetura com messageria/streaming (Kafka)
 

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