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

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

  • 1.
    São Paulo MuleSoftMeetup Group 16/12/2020 - 6:00PM
  • 2.
    2 ● Introdução ● UnwiredAPI-led - Eduardo Ponzoni ● Custom Policies - Pedro Baroni ● Competição valendo 3 cursos oficiais MuleSoft Agenda
  • 3.
  • 4.
    4 ● Grupo dacomunidade 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 IntegrationPractice 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 intuitode 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 termoscomo 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 SystemAPI ❑ 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 SystemAPI ❑ 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 SystemAPI 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 KickExercise Unwired API-Led Connectivity
  • 16.
    Vamos Exercitar! VerAlgum Design e Código! Unwired API-Led Connectivity
  • 17.
    Unwired API-Led Connectivity Exemplode Solução Utilizando Unwired API-Led Connectivity Abordagem de Integração Assíncrona e Baseada em Mensagens/Eventos
  • 18.
    Unwired API-Led Connectivity ProductOfferings 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 Perguntasou Comentários? Abordagem Assíncrona Para Integração de APIs
  • 20.
    Thank you! Eduardo Ponzoni EnterpriseIntegration 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 Policyfor HMAC validation in Webhook scenarios
  • 22.
    22 ●About me: ○ PedroBaroni (14+ years Integration experience) ○ Has migrated from SAP technologies to Mulesoft ○ MCD (Developer) and MCPA (Platform Architect) Certified Introductions
  • 23.
    23 ●Usually APIs thatreceives: ○ Events. ○ Push Notification. ○ Async Processing Statuses. What is a Webhook?
  • 24.
  • 25.
    25 ● Using awebhook 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.
  • 27.
  • 28.
  • 29.
    29 ● Hash-based MessageAuthentication 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.
  • 34.
    34 ● Crypto usingDataWeave: ○ 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
  • 37.