SlideShare uma empresa Scribd logo
São Paulo MuleSoft Meetup Group
16/12/2020 - 6:00PM
2
● Introdução
● Unwired API-led - Eduardo Ponzoni
● Custom Policies - Pedro Baroni
● Competição valendo 3 cursos oficiais MuleSoft
Agenda
Organizadores
4
● Grupo da comunidade para a comunidade
● Local aberto para discussões sobre o mundo de APIs e MuleSoft
● Seja um palestrante
● Compartilhe seu conhecimento
● Ganhe um voucher para treinamento e certificação
https://meetups.mulesoft.com/sao-paulo/
Faça parte da comunidade
Eduardo Ponzoni – Datacom New Zealand
Novembro de 2020 – São Paulo, Brasil
Abordagem Assíncrona Para Integração de APIs
Unwired API-Led Connectivity
Apresentação
Eduardo Ponzoni
Enterprise Integration Practice Manager
MuleSoft & Other Technologies
Datacom New Zealand
API-Led Connectivity
PACE – Estratégia de Aplicações em Camadas do Gartner
Metodologia para alavancar, compor e conectar sistemas e dados
através de blocos de APIs com propósitos específicos, que
juntos compõem soluções de integração corporativa
API-Led Connectivity
Visão MuleSoft
Tem o intuito de categorizar, selecionar e definir APIs (microserviços) que
são então agrupadas entre Experience APIs, Process APIs e System APIs
API-Led Connectivity
Visão MuleSoft
Comumente utiliza termos como API e microserviços para se referir a
aplicações MuleSoft que expõem webservices RESTFul ou SOAP
API-Led Connectivity
Visão MuleSoft
Experience API
Process API
System API
❑ Segregação de responsabilidades das APIs
❑ Pequenos blocos de montar colaborativos
❑ Reuso, visibilidade, composição
❑ Descobrimento, monitoramento
❑ Ampla utilização pela comunidade
MuleSoft
❑ Amigável para Web, Mobile, IoT, etc.
HTTP/S Request/Response
HTTP/S Request/Response
Synchronous API Communication
API-Led Connectivity
Abordagem de Integração Padrão
Experience API
Process API
System API
❑ Uso exclusívo do protocol HTTP
❑ Comunicação entre APIs sempre síncrona
❑ Acoplamento excessivo de APIs
❑ Maior chance de timeouts e mais latência
❑ Ignora outros conectores e protocolos
❑ Resiliência, robustez e flexibilidade
HTTP/S Request/Response
HTTP/S Request/Response
Synchronous API Communication
API-Led Connectivity
Abordagem de Integração Padrão (Com Seus Poréns)
Experience API
Process API
System API
Event
Store/
Broker
Pub/Sub
Asynchronous API Communication
HTTP/S – JMS – AMQP – FILE – FTP/S – TCP, etc…
HTTP/S – JMS – AMQP – FILE – FTP/S – TCP, etc… AnypointMQ
ActiveMQ
RabbitMQ
Kafka
Kinesis
PubSub+
etc…
❑ Mesmo modelo de camadas
❑ Baseado em mensagens/eventos
❑ Fire-and-forget e Pub/Sub
❑ APIs realmente desacopladas
❑ Comunicação assíncrona
❑ Resiliente, robusta e flexível
❑ Quaisquer conectores e protocolos
Unwired API-Led Connectivity
Abordagem de Integração Padrão (Assíncrona)
Queremos ver você exercitar isso na prática!
Ok Edu, agora já chega de “Blah – Blah – Blah”…
Unwired API-Led Connectivity
Vamos Exercitar!
Donkey Kick Exercise
Unwired API-Led Connectivity
Vamos Exercitar! Ver Algum
Design e Código!
Unwired API-Led Connectivity
Unwired API-Led Connectivity
Exemplo de Solução Utilizando Unwired API-Led Connectivity
Abordagem de Integração Assíncrona e Baseada em Mensagens/Eventos
Unwired API-Led Connectivity
Product Offerings
System API
Inbound Product Offerings Queue
Construction Product Offerings Queue
Product Offerings
Process API
Unknown Product Offerings Queue
Construction Product
Offerings Experience API
Subscribe
Publish
Abordagem de Integração Assíncrona e Baseada em Mensagens/Eventos
Request/Response
Unwired API-Led Connectivity
Perguntas ou Comentários?
Abordagem Assíncrona Para Integração de APIs
Thank you!
Eduardo Ponzoni
Enterprise Integration Practice Manager
MuleSoft & Other Technologies Practice Lead
Datacom New Zealand
eponzoni@gmail.com –
eduardop@datacom.co.nz
https://nz.linkedin.com/in/eduardo-ponzoni-
● Custom Policy for HMAC
validation in Webhook scenarios
22
●About me:
○ Pedro Baroni (14+ years Integration experience)
○ Has migrated from SAP technologies to Mulesoft
○ MCD (Developer) and MCPA (Platform Architect) Certified
Introductions
23
●Usually APIs that receives:
○ Events.
○ Push Notification.
○ Async Processing Statuses.
What is a Webhook?
24
●Webhook vs Pooling:
What is a Webhook?
25
● Using a webhook integration:
○ No-Code on Consumer-side (Events Publisher).
○ Events Publisher offers a DIY setup to starting POST messages to the
Webhook.
●Security:
○ API Key (Secret only).
○ Basic Authentication (client ID and Secret).
○ HMAC (Hash-based Message Authentication Code).
What is a Webhook?
26
● GitHub:
Webhook example 1
27
● DocuSign:
Webhook example 2
28
● MS Teams:
Webhook example 3
29
● Hash-based Message Authentication Code:
○ Message Sender creates a Payload-based hash code and signs it with a
Symmetric Key (secret).
○ HMAC is sent usually as a Header Param.
○ Message Receiver replay the procedure and check whether the Hash is
identical.
●Security:
○ Integrity: assures information completeness and accuracy.
○ Authenticity: ensure genuineness on message originator.
○ Secret Token generated by Consumer, instead of API Provider.
HMAC Authentication
30
● Useful when:
○ Custom security validation is needed (e.g. HMAC validation).
○ No OOTB policy available in API Manager.
○ Must implement same logic as NF Requirement in more than one API.
● Development Lifecycle:
○ Develop.
○ Package.
○ Upload to Exchange.
○ Apply in API Manager.
Custom Policy
31
Custom Policy – YAML Config File
32
Custom Policy – YAML Config File
33
Custom Policy – template.xml
34
● Crypto using DataWeave:
○ dw::Crypto::HMACBinary
○ dw::Crypto::HMACWith
Custom Policy – template.xml
35
Custom Policy – Exchange and API Manager
36
Custom Policy – DEMO
CUSTOM POLICY WEBHOOK
Thank you

Mais conteúdo relacionado

PPTX
São Paulo MuleSoft Meetups - DevOps
PDF
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
PDF
Continious Delivery in practice - POA Meetup
PDF
.NET 6: O que há de novo e o que está por vir?
PDF
Conheça como a Vinta trabalha.
PPTX
TDC2018SP | Trilha Arq .Net - Aplicacoes Multi-Tenant no Asp.Net Core
PPTX
Workshop anypoint service mesh
PPT
Arquitetura Limpa em .NET Core
São Paulo MuleSoft Meetups - DevOps
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Continious Delivery in practice - POA Meetup
.NET 6: O que há de novo e o que está por vir?
Conheça como a Vinta trabalha.
TDC2018SP | Trilha Arq .Net - Aplicacoes Multi-Tenant no Asp.Net Core
Workshop anypoint service mesh
Arquitetura Limpa em .NET Core

Mais procurados (20)

PPTX
MUnit: Encontre os bugs antes que eles encontrem seu app
PDF
Developer Experience no Nubank
PDF
Construindo um micro-serviço Java 100% funcional em 15 minutos
PDF
Docker como super comando
PPTX
Migração SVN para GIT
PDF
Por que jenkins se posso usar deployer php
PDF
Carrefour E-commerce - Multicloud Brasil Day 2017
PDF
Testes com xUnit + Coding Dojo
PDF
Como garantir a qualidade de sua API?
PPTX
Selenium renato groffe + milton camara - mvp conf latam 2019
PPTX
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
PPT
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
PPTX
Mule Meetup Cache Redis
PDF
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
PDF
Entrega Contínua e Aplicações em Produção
PPTX
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
PPTX
Mulesoft Meetup Latam Summit Brazil
PPTX
A trilogia Spring MVC + Spring Data + AngularJS
PDF
GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...
PDF
#1 - Git - Introdução
MUnit: Encontre os bugs antes que eles encontrem seu app
Developer Experience no Nubank
Construindo um micro-serviço Java 100% funcional em 15 minutos
Docker como super comando
Migração SVN para GIT
Por que jenkins se posso usar deployer php
Carrefour E-commerce - Multicloud Brasil Day 2017
Testes com xUnit + Coding Dojo
Como garantir a qualidade de sua API?
Selenium renato groffe + milton camara - mvp conf latam 2019
.NET e ASP.NET Core 2.2, .NET Core 3, Visual Studio 2019: uma visão geral - ....
Boas práticas de desenvolvimento ágil com Continuous Integration + Delivery e...
Mule Meetup Cache Redis
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
Entrega Contínua e Aplicações em Produção
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Mulesoft Meetup Latam Summit Brazil
A trilogia Spring MVC + Spring Data + AngularJS
GitLab Pajamas Design System (2022-01-20 @ “Design systems tratados por tu” p...
#1 - Git - Introdução
Anúncio

Semelhante a São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices (20)

PPTX
Um pouco sobre APIs
PPTX
SharePoint Framework - Uma plataforma aberta e conectada
PDF
DevOps - Entrega Contínua de Software
PDF
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
PDF
Comunicação em tempo real com WebRTC e PHP
PPTX
Uma Introdução a ASP.NET Web API
PPTX
Minicurso IOT com javascript - SBTI
PPTX
Desenvolvimento web com .NET Core - Meetup São Carlos
PPTX
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
PPT
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
PDF
Django Channels - Aplicações real time com Django
PDF
ThingProvider-Proposal
PDF
Tdc2019 intro event-sourcing_kafka
PPTX
Microservices com Spring Boot e Spring Cloud Netflix
PPT
Cake Php
PPTX
Apprenda, sua Business-oriented PaaS
PPTX
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
PPT
Tdc 2013 eric lemes - integracoes entre sistemas-2
PDF
Mod 3- Aula 4 DFS Python aula de python sobre funções.pptx.pdf
PDF
API management: um aliado para construção de APIs
Um pouco sobre APIs
SharePoint Framework - Uma plataforma aberta e conectada
DevOps - Entrega Contínua de Software
DevOps na AWS: Construindo Sistemas para Entregas Rápidas
Comunicação em tempo real com WebRTC e PHP
Uma Introdução a ASP.NET Web API
Minicurso IOT com javascript - SBTI
Desenvolvimento web com .NET Core - Meetup São Carlos
Symfony Live - São Paulo 2019 - Como construir uma API em um passo com API Pl...
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
Django Channels - Aplicações real time com Django
ThingProvider-Proposal
Tdc2019 intro event-sourcing_kafka
Microservices com Spring Boot e Spring Cloud Netflix
Cake Php
Apprenda, sua Business-oriented PaaS
Acelerando a entrega de software com as ferramentas de desenvolvimento da AWS
Tdc 2013 eric lemes - integracoes entre sistemas-2
Mod 3- Aula 4 DFS Python aula de python sobre funções.pptx.pdf
API management: um aliado para construção de APIs
Anúncio

Mais de Guilherme Pereira Silva (12)

PPTX
Extending the Mule Runtime - Building a Circuit Breaker Component.pptx
PPTX
#2 Building your first connector extending the Mule Java SDK
PDF
MuleSoft Composer - Online Portuguese Meetup Group
PPTX
Building APIs with Mule and Spring Boot
PPTX
MuleSoft MuleSoft Meetup - Shared Flows
PPTX
São Paulo MuleSoft Meetup - Messaging patterns
PPTX
São Paulo MuleSoft Meetup - Deployments Models
PPTX
São Paulo MuleSoft Meetup #5 - Runtime Fabric
PPTX
MuleSoft Meetup São Paulo #4 - November
PPTX
MuleSoft São Paulo Meetup #3 - 18 Jun
PPTX
Managing APIs with MuleSoft
PPTX
São Paulo MuleSoft Meetup - 31 Jan
Extending the Mule Runtime - Building a Circuit Breaker Component.pptx
#2 Building your first connector extending the Mule Java SDK
MuleSoft Composer - Online Portuguese Meetup Group
Building APIs with Mule and Spring Boot
MuleSoft MuleSoft Meetup - Shared Flows
São Paulo MuleSoft Meetup - Messaging patterns
São Paulo MuleSoft Meetup - Deployments Models
São Paulo MuleSoft Meetup #5 - Runtime Fabric
MuleSoft Meetup São Paulo #4 - November
MuleSoft São Paulo Meetup #3 - 18 Jun
Managing APIs with MuleSoft
São Paulo MuleSoft Meetup - 31 Jan

Último (20)

PDF
Processos na gestão de transportes, TM100 Col18
PDF
Apple Pippin Uma breve introdução. - David Glotz
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PDF
COBITxITIL-Entenda as diferença em uso governança TI
PPTX
Aula sobre banco de dados com firebase db
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
PPTX
Émile Durkheim slide elaborado muito bom
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
PPTX
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PPTX
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Processos na gestão de transportes, TM100 Col18
Apple Pippin Uma breve introdução. - David Glotz
Curso de Java 9 - (Threads) Multitarefas.pptx
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
COBITxITIL-Entenda as diferença em uso governança TI
Aula sobre banco de dados com firebase db
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
Émile Durkheim slide elaborado muito bom
Aula 18 - Manipulacao De Arquivos python
Curso de Java 13 - (JavaEE (JSP e Servlets)).pptx
Curso de Java 17 - (JEE (Sessões e Cookies)).pptx
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Curso de Java 14 - (Explicações Adicionais (Classes Abstrata e Interface)).pptx
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...

São Paulo MuleSoft Meetup - Unwired API Led & Custom Polices

  • 1. São Paulo MuleSoft Meetup Group 16/12/2020 - 6:00PM
  • 2. 2 ● Introdução ● Unwired API-led - Eduardo Ponzoni ● Custom Policies - Pedro Baroni ● Competição valendo 3 cursos oficiais MuleSoft Agenda
  • 4. 4 ● Grupo da comunidade para a comunidade ● Local aberto para discussões sobre o mundo de APIs e MuleSoft ● Seja um palestrante ● Compartilhe seu conhecimento ● Ganhe um voucher para treinamento e certificação https://meetups.mulesoft.com/sao-paulo/ Faça parte da comunidade
  • 5. Eduardo Ponzoni – Datacom New Zealand Novembro de 2020 – São Paulo, Brasil Abordagem Assíncrona Para Integração de APIs Unwired API-Led Connectivity
  • 6. Apresentação Eduardo Ponzoni Enterprise Integration Practice Manager MuleSoft & Other Technologies Datacom New Zealand
  • 7. API-Led Connectivity PACE – Estratégia de Aplicações em Camadas do Gartner
  • 8. Metodologia para alavancar, compor e conectar sistemas e dados através de blocos de APIs com propósitos específicos, que juntos compõem soluções de integração corporativa API-Led Connectivity Visão MuleSoft
  • 9. Tem o intuito de categorizar, selecionar e definir APIs (microserviços) que são então agrupadas entre Experience APIs, Process APIs e System APIs API-Led Connectivity Visão MuleSoft
  • 10. Comumente utiliza termos como API e microserviços para se referir a aplicações MuleSoft que expõem webservices RESTFul ou SOAP API-Led Connectivity Visão MuleSoft
  • 11. Experience API Process API System API ❑ Segregação de responsabilidades das APIs ❑ Pequenos blocos de montar colaborativos ❑ Reuso, visibilidade, composição ❑ Descobrimento, monitoramento ❑ Ampla utilização pela comunidade MuleSoft ❑ Amigável para Web, Mobile, IoT, etc. HTTP/S Request/Response HTTP/S Request/Response Synchronous API Communication API-Led Connectivity Abordagem de Integração Padrão
  • 12. Experience API Process API System API ❑ Uso exclusívo do protocol HTTP ❑ Comunicação entre APIs sempre síncrona ❑ Acoplamento excessivo de APIs ❑ Maior chance de timeouts e mais latência ❑ Ignora outros conectores e protocolos ❑ Resiliência, robustez e flexibilidade HTTP/S Request/Response HTTP/S Request/Response Synchronous API Communication API-Led Connectivity Abordagem de Integração Padrão (Com Seus Poréns)
  • 13. Experience API Process API System API Event Store/ Broker Pub/Sub Asynchronous API Communication HTTP/S – JMS – AMQP – FILE – FTP/S – TCP, etc… HTTP/S – JMS – AMQP – FILE – FTP/S – TCP, etc… AnypointMQ ActiveMQ RabbitMQ Kafka Kinesis PubSub+ etc… ❑ Mesmo modelo de camadas ❑ Baseado em mensagens/eventos ❑ Fire-and-forget e Pub/Sub ❑ APIs realmente desacopladas ❑ Comunicação assíncrona ❑ Resiliente, robusta e flexível ❑ Quaisquer conectores e protocolos Unwired API-Led Connectivity Abordagem de Integração Padrão (Assíncrona)
  • 14. Queremos ver você exercitar isso na prática! Ok Edu, agora já chega de “Blah – Blah – Blah”… Unwired API-Led Connectivity
  • 15. Vamos Exercitar! Donkey Kick Exercise Unwired API-Led Connectivity
  • 16. Vamos Exercitar! Ver Algum Design e Código! Unwired API-Led Connectivity
  • 17. Unwired API-Led Connectivity Exemplo de Solução Utilizando Unwired API-Led Connectivity Abordagem de Integração Assíncrona e Baseada em Mensagens/Eventos
  • 18. Unwired API-Led Connectivity Product Offerings System API Inbound Product Offerings Queue Construction Product Offerings Queue Product Offerings Process API Unknown Product Offerings Queue Construction Product Offerings Experience API Subscribe Publish Abordagem de Integração Assíncrona e Baseada em Mensagens/Eventos Request/Response
  • 19. Unwired API-Led Connectivity Perguntas ou Comentários? Abordagem Assíncrona Para Integração de APIs
  • 20. Thank you! Eduardo Ponzoni Enterprise Integration Practice Manager MuleSoft & Other Technologies Practice Lead Datacom New Zealand eponzoni@gmail.com – eduardop@datacom.co.nz https://nz.linkedin.com/in/eduardo-ponzoni-
  • 21. ● Custom Policy for HMAC validation in Webhook scenarios
  • 22. 22 ●About me: ○ Pedro Baroni (14+ years Integration experience) ○ Has migrated from SAP technologies to Mulesoft ○ MCD (Developer) and MCPA (Platform Architect) Certified Introductions
  • 23. 23 ●Usually APIs that receives: ○ Events. ○ Push Notification. ○ Async Processing Statuses. What is a Webhook?
  • 25. 25 ● Using a webhook integration: ○ No-Code on Consumer-side (Events Publisher). ○ Events Publisher offers a DIY setup to starting POST messages to the Webhook. ●Security: ○ API Key (Secret only). ○ Basic Authentication (client ID and Secret). ○ HMAC (Hash-based Message Authentication Code). What is a Webhook?
  • 29. 29 ● Hash-based Message Authentication Code: ○ Message Sender creates a Payload-based hash code and signs it with a Symmetric Key (secret). ○ HMAC is sent usually as a Header Param. ○ Message Receiver replay the procedure and check whether the Hash is identical. ●Security: ○ Integrity: assures information completeness and accuracy. ○ Authenticity: ensure genuineness on message originator. ○ Secret Token generated by Consumer, instead of API Provider. HMAC Authentication
  • 30. 30 ● Useful when: ○ Custom security validation is needed (e.g. HMAC validation). ○ No OOTB policy available in API Manager. ○ Must implement same logic as NF Requirement in more than one API. ● Development Lifecycle: ○ Develop. ○ Package. ○ Upload to Exchange. ○ Apply in API Manager. Custom Policy
  • 31. 31 Custom Policy – YAML Config File
  • 32. 32 Custom Policy – YAML Config File
  • 33. 33 Custom Policy – template.xml
  • 34. 34 ● Crypto using DataWeave: ○ dw::Crypto::HMACBinary ○ dw::Crypto::HMACWith Custom Policy – template.xml
  • 35. 35 Custom Policy – Exchange and API Manager
  • 36. 36 Custom Policy – DEMO CUSTOM POLICY WEBHOOK