Ir para o conteúdo principal

Camada de API

Uma camada de API REST ou de serviços da web oferece uma interface separada para dados e/ou funcionalidade de um ou mais aplicativos. Ela apresenta uma forma comum, que independe da linguagem, para interação com o aplicativo. As APIs de serviços web oferecem um contrato bem definido, chamado WSDL, que descreve os serviços nos termos da respectiva operação e os tipos de dados usados para trocar informações. APIs REST normalmente não têm esse contrato, mas são documentadas com bibliotecas do cliente para a maioria das linguagens, incluindo Ruby, Java, PHP e JavaScript. Os serviços web de SOAP foram adotados nas empresas para a publicação de serviços internos, bem como para troca de informações com parceiros em transações B2B. Na web, a arquitetura de software REST é a maneira preferencial para publicação de uma API. Atualmente isso está influenciado o comportamento empresarial.

Casos de uso

Veja alguns exemplos comuns de onde uma camada de API pode ser usada:

  • Você precisa se conectar a um aplicativo legado que não tenha uma API REST. Por exemplo, você tem um CRM ou sistema de RH personalizado ao qual deseja que os funcionários tenham acesso por meio de um portal.
  • Você quer publicar uma API que permita a comunicação de seus parceiros com os sistemas da empresa por meio de uma interface bem-definida. Uma API de serviços web normalmente é criada para isso.
  • Você quer se conectar a uma variedade de aplicativos ou fontes de dados, combinar os dados e enviar os resultados para um aplicativo móvel. Talvez você queira aprimorar informações de clientes ou RH com dados disponíveis em redes sociais, como Facebook ou LinkedIn. Em outro cenário comum, pode ser que você tenha vários sistemas CRM e queira fornecer uma visão unificada a quem acessar os dados de cliente externamente.

Vamos analisar um caso de uso de dispositivo móvel que interage com um aplicativo empresarial.

Integração de aplicativos móveis

Após decidir pelo desenvolvimento de um aplicativo para dispositivos móveis, nativo (iOS/Android) ou baseado em HTML, o maior desafio a ser enfrentado é como integrar esse aplicativo aos aplicativos de back-end, como sistemas CRM ou ERP.

Os desafios de apresentação específicos, enfrentados pelos desenvolvedores de aplicativos móveis, mudaram radicalmente a maneira como criamos aplicativos web. Anteriormente o HTML era solicitado de um servidor central e entregue em "navegadores" no lado do cliente. O novo modelo de "app móvel" envolve o fornecimento de conteúdo dinâmico usando HTTP e AJAX, com a comunicação na forma de dados JASON sendo transmitidos por HTTP usando serviços REST.

Em consequência, a integração apresenta o desafio de como expor rapidamente sua infraestrutura atual a esse novo "canal de entrega móvel" e, ao mesmo tempo, reduzir as alterações em sua infraestrutura de back-end. Organizações capazes de fazer isso rapidamente podem expor seus modelos tradicionais de negócios a dispositivos e dados demográficos inteiramente novos. Nesse caso, o Mule agrega valor significativo ao entregar um mecanismo ou uma camada de mediação simples, entre serviços web baseados em SOAP/XML e aplicativos REST/JASON. Além disso, você pode facilmente organizar aplicativos compostos sofisticados com base em vários serviços de back-end, REST e não REST, sem precisar expor seu modelo de objeto interno aos consumidores externos.

Implementação

Neste caso de uso, mostraremos como é fácil usar o Mule para "RESTificar" um aplicativo existente. Usamos o termo "RESTificar" para nos referir à criação de um serviço web REST de front-end para um aplicativo existente.

Digamos que você queira permitir que sua equipe de vendas crie uma nova oportunidade de vendas nos respectivos dispositivos móveis que:

  • Esteja sincronizada com sua implementação do Salesforce CRM e
  • envie uma notificação por e-mail a um gerente, se a oportunidade estiver acima de determinado valor em dólares.

REST

A API REST e o formato dos dados JSON permitem que mais linguagens e dispositivos tenham fácil acesso aos sistemas de back-end.

Salesforce

O Salesforce é usado na consulta de dados para seu aplicativo. O Mule fornece conectividade pré-definida ao Salesforce, incluindo APIs em massa e streaming.

SMTP

Este aplicativo envia alertas por e-mail. A arquitetura modular do Mule facilita o envio de mensagens a uma variedade de tecnologias, incluindo Apple Push, Android Notifications e Twilio (SMS).

Princípios essenciais de integração

Ao aplicar os cinco princípios de integração abaixo, um caso de uso de integração de aplicativo móvel geralmente envolve o seguinte:

Transformação

Como vamos consumir essa interface de um aplicativo móvel, a melhor opção para o formato de dados é o JASON, pois é um protocolo muito fácil de trabalhar, tanto em um aplicativo móvel quanto no Mule. Nesse caso, o desafio será transformar dados JSON, recebidos de nosso dispositivo móvel, em um formato que possa ser carregado em SFDC. O objeto de dados JSON simples que é apresentado abaixo indica o tipo de dados que está sendo recebido de nosso aplicativo móvel.

Transporte

A negociação do protocolo de transporte entre um serviço baseado em REST que interage com o aplicativo móvel e, em nosso caso, com o sistema SFDC via HTTP e com uma conexão de e-mail adicional que usa o protocolo SMTP.

Orquestração

A composição de vários componentes de base em um único serviço composto de ordem superior. Neste caso de uso, estamos agregando uma atualização com SFDC com um serviço de e-mail simples e apresentando-o como um aplicativo móvel baseado em REST, usando um fluxo de integração Mule para conectar tudo.

Mediação

Ao longo do tempo, a mediação será útil aqui, à medida que for necessário dar suporte a várias versões desse serviço para uma ampla gama de consumidores. Além disso, é possível fornecer (se solicitado) uma interface SOAP adicional para esse serviço baseado em REST com a simples adição dos componentes da mediação destinados a realizar a organização entre SOAP/XML e JSON.

Consistência não funcional

Por natureza, esses requisitos são genéricos e incluem o fornecimento de uma implementação de segurança comum, geração de registros, implementação, gerenciamento de componentes de tempo de execução e muito mais. O Mule oferece funcionalidade para atender a cada um desses requisitos

Componentes de integração do Mule

O Mule fornece uma interface gráfica simples para a composição desses tipos de aplicativos. A primeira etapa da comunicação com um aplicativo móvel é usar um ponto de extremidade HTTP com um componente REST. Essa etapa cuida da maior parte da complexidade associada à comunicação com seus apps móveis e ao consumo de objetos JSON. O Mule também simplifica o processo de comunicação com o sistema Salesforce CRM ao fornecer um conector de nuvem "pré-definido". Basta você arrastar o conector para seu projeto, especificamente seu nome de usuário e token, selecionar a função que você quer chamar e pronto. Também é muito simples o processo de adição de lógica e comunicação com um servidor SMTP para o envio de e-mails.

O projeto a seguir foi desenvolvido usando o Mule Studio.

Sumário

Então, o que nós realizamos? Usando o Mule nós ilustramos como é fácil aproveitar aplicativos existentes e combiná-los com serviços REST de alto nível, que facilitam a integração com aplicativos móveis.

Além disso, também mostramos como é simples usar o conector predefinido fornecido pelo Mule para integrar os aplicativos móveis e o Salesforce. Essa realização tem grande significado quando admitimos que a integração é um dos principais desafios enfrentados pelas empresas ao adotar tecnologias de nuvem, como SFDC.

Os dispositivos móveis abriram canais de entrega para públicos e dados demográficos muito mais amplos. O Mule permite a você responder aos novos modelos de interação exigidos por esses dispositivos realizar a integração com sistemas existentes de um jeito simples, escalável e confiável.