Visão geral da integração com o Apex

Objetivos de aprendizagem

Após concluir este módulo, você estará apto a:
  • Descrever as diferenças entre os serviços da Web e os callouts HTTP.
  • Autorizar um site externo por meio das configurações de um site remoto.

Faça callouts para serviços externos pelo Apex

Os callouts do Apex possibilitam que haja uma forte integração do código do Apex com um serviço externo. Esse callout estabelece ligação com um serviço externo da Web ou envia uma solicitação HTTP do código do Apex, o que gera uma resposta.

Há dois tipos de callouts do Apex.

  • Os callouts de serviços da Web feitos para serviços da Web SOAP usam XML e costumam precisar de um documento WSDL para geração de códigos.
  • Em geral, os callouts HTTP feitos para serviços usam REST com JSON.

Esses dois tipos de callouts são parecidos no sentido de que eles enviam uma solicitação para um serviço e recebem uma resposta. Os callouts com base em WSDL são usados para serviços da Web SOAP, ao passo que os callouts HTTP podem ser usados para qualquer serviço HTTP, seja com SOAP ou REST.

A essa altura, você deve estar se perguntando: “Qual será que eu deveria usar?”. Sempre que possível, use um serviço HTTP. Em geral, eles oferecem uma interação mais simples, demandam bem menos código e usam um JSON de fácil leitura. Todo mundo “que manja do assunto” já passou a usar os serviços REST nos últimos anos, mas isso não significa que os serviços da Web SOAP sejam ruins. Essa opção existe desde sempre (na vida da Internet) e costuma ser usada para aplicativos empresariais. Ela não vai sumir da noite para o dia. Você provavelmente usará SOAP quando estiver fazendo uma integração com aplicativos herdados ou para transações que precisem de um formato oficial de troca ou de operações com estado. Neste módulo, mencionaremos os serviços SOAP, mas passaremos a maior parte do tempo explorando a opção REST.

Autorização dos endereços dos pontos de extremidade

Somos apaixonados por segurança aqui na Salesforce! Portanto, precisamos garantir que todos os callouts feitos por você para um site externo tenham a devida permissão. Seria inaceitável que os códigos fizessem callouts a torto e a direito para qualquer ponto de extremidade sem uma autorização prévia. Antes de começar a trabalhar com os callouts, atualize a lista de sites aprovados pela sua organização na página Configurações de sites remotos.

Usaremos os seguintes pontos de extremidade neste módulo, portanto, aproveite para adicioná-los agora. Vá por mim: se você se esquecer de adicionar um ponto de extremidade, isso não passará desapercebido ao tentar executar seu código. Faremos callouts para os sites a seguir.

  • https://th-apex-http-callout.herokuapp.com
  • https://th-apex-soap-service.herokuapp.com

Autorize essas duas URLs do ponto de extremidade seguindo os passos abaixo.

  1. Em Configuração, insira Configurações de sites remotos na caixa Busca rápida e clique em Configurações de sites remotos.
  2. Clique em Novo site remoto.
  3. Para o nome do site remoto, insira animais_http.
  4. Para a URL do site remoto, insira https://th-apex-http-callout.herokuapp.com. A especificação dessa URL gera uma autorização para todas as subpastas daquele ponto de extremidade, como https://th-apex-http-callout.herokuapp.com/path1 e https://th-apex-http-callout.herokuapp.com/path2.
  5. Na descrição, escreva Serviço de animais do Trailhead: HTTP.
  6. Clique em Salvar e novo.
  7. Para o nome do segundo site remoto, insira animais_soap.
  8. Para a URL do site remoto, insira https://th-apex-soap-service.herokuapp.com.
  9. Na descrição, escreva Serviço de animais do Trailhead: SOAP.
  10. Clique em Salvar.