O Salesforce nos permite interagir com a plataforma de muitas formas, entre elas com o uso de APIs, nesse post quero fazer um overview das APIs do Salesforce disponíveis e quando usar cada uma delas, o intuito não é colocar uma contra a outra, e dizer qual é melhor, mas sim explicar o uso delas e assim de dar opções de escolhas de uma forma mais consciente.

 

APIs do Salesforce

A maior parte do conteúdo deste artigo vieram da documentação oficial do Salesforce, mas a intenção aqui é dar uma visão geral de cada API em um único local e também dar uma idéia do que usar quando. Por favor, leia a documentação oficial para ter uma idéia mais profunda sobre cada uma das API.

As APIs do Salesforce é tão vasto quanto o azul do oceano, diz o Salesforce, isso porque o Salesforce adota uma abordagem de API First para criar recursos na Salesforce Platform.

 

1. SOAP API

A SOAP API permite criar, ler, atualizar e excluir registros, o famoso CRUD (Create, Read, Update e Delete), com ela é possível interagir com Contas, Leads e também com seus objetos personalizados. A SOAP API também permite o gerenciamento de senhas, realizar pesquisas entre outras funcionalidades.

A SOAP API é otimizada para aplicativos clientes em tempo real que atualizam alguns registros de cada vez. Você pode usar a SOAP API para processar muitos registros, mas tenha em mente que para grandes quantidades, existem APIs próprias, falaremos mais sobre ela logo a frente.

Essa API trabalha de forma síncrona e pode ser utilizada por qualquer linguagem de programação que suporte serviços da Web, por ser baseada inteiramente em XML, o SOAP API oferece uma das maiores integrações com sistemas legados, e também uma criação de aplicativos conectados mais robusta. A SOAP API não suporta JSON.

Para entender melhor o funcionamento da SOAP API, sugiro que você dê uma olhada nesse módulo do trailhead.

 

2. REST API

REST API nos fornece uma interface de serviços da Web muito poderosa, Suas vantagens incluem a facilidade de integração e desenvolvimento, e é uma excelente opção de tecnologia para uso com aplicativos móveis e projetos da Web, mas caso o seu cenário seja o de interagir com muitos registros considere o uso da API em massa, que é baseada nos princípios da REST, porém otimizada para grandes conjuntos de dados.

A API REST usa a estrutura síncrona e suporta solicitações de respostas baseadas em JSON e XML. Mas é comumente utilizada com o tipo de solicitação JSON.

E para sua sorte, existe também uma unidade do trailhead que aborda o uso da REST API.

 

3. Bulk API ou API em massa

A Bulk API é baseada nos princípios da REST e é otimizada para carregar e excluir grandes quantidades de registros, você pode utilizar ela para consultar, inserir, atualizar, fazer backups e também excluir registros, tudo de forma assíncrona, enviando lotes, o Salesforce processa lotes em segundo plano.

A Bulk API usa a estrutura assíncrona e suporta solicitações e respostas baseadas em JSON. É mais pratica para quando você lida com muita quantidade de registros e não se importa muito com a atualização em tempo real.

A Bulk API já esta na versão 2.0, então ao menos que você já tenha um código legado, eu sugiro que você já se habitue ao uso da 2.0 ao invés da 1.0,

Separei aqui também, uma unidade do trailhead especifica para a Bulk API e também o documentação do Salesforce que aborda especificamente a parte de Bulk.

 

4. Tooling API

Use a Tooling API para criar ferramentas ou aplicativos de desenvolvimento personalizadas para a plataforma Salesforce. Os recursos SOQL da Tooling API te permite interagir com os metadados da sua plataforma, a Tooling API permite interação através das interfaces SOAP e REST API.

Com a Tooling API você pode por exemplo:

  • Adicione recursos e funcionalidades às ferramentas existentes da Plataforma Salesforce.
  • Criar módulos dinâmicos para o desenvolvimento da Plataforma Salesforce em suas ferramentas de integração corporativa.
  • Criar ferramentas de desenvolvimento especializadas para um aplicativo ou serviço especifico.

Utilize a Tooling API quando você precisar de acesso refinado aos metadados de uma organização. Os recursos SOQL da API para muitos tipos de metadados lhe permitirá recuperar as informações dos metadados de forma eficiente , o que torna a Tooling API uma ferramenta adequada para o desenvolvimento de aplicativos interativos.

 

5. REST API do Analytics

Você pode acessar ativos do Analytics, como conjuntos de dados, lenses e painéis, programaticamente usando a REST API do Analytics. Envie consultas diretamente para a plataforma Analytics. Acesse conjuntos de dados que foram importados para a plataforma Analytics. Crie e recupere lenses. Acesse informações XMD. Recupere uma lista de versões de conjunto de dados.

Com essas API você pode:

  • Crie e recupere aplicativos do Analytics.
  • Crie, atualizar e recupere painéis do Analytics.
  • Recuperar uma lista de dependências de um aplicativo.
  • Determine quais recursos estão disponíveis para o usuário.
  • Trabalhar com instantâneos.
  • Manipular conjuntos de dados replicados.

 

6. API de metadados

Use a API de metadados para recuperar, implantar, criar, atualizar ou excluir personalizações para sua organização. O uso mais comum é migrar as alterações de um sandbox ou de uma organização de teste para o seu ambiente de produção. A API de metadados destina-se ao gerenciamento de personalizações e à criação de ferramentas que possam gerenciar o modelo de metadados, não os dados em si.

A Ant Migration Tool é ideal se você usar um script ou a linha de comando para mover metadados entre um diretório local e uma organização do Salesforce.

A maneira mais fácil de acessar a funcionalidade na API de metadados é usar o IDE do Force.com ou a ferramenta de migração do Ant. Ambas as ferramentas são criadas sobre a Metadata API e usam as ferramentas padrão Eclipse e Ant, respectivamente, para simplificar o trabalho com a Metadata API.

 

7. API de streaming

A API de streaming é útil quando você deseja que as notificações sejam enviadas do servidor para o cliente com base nos critérios que você define. Considere os seguintes aplicativos para a API de streaming:

Aplicativos que pesquisam com frequência
Aplicativos que têm ação de pesquisa constante na infraestrutura do Salesforce, consumindo chamadas de API desnecessárias e tempo de processamento, se beneficiariam da API de streaming, que reduz o número de solicitações que não retornam dados.

Notificação geral
Use a API de streaming para aplicativos que exigem notificação geral de alterações de dados em uma organização. Isso permite reduzir o número de chamadas de API e melhorar o desempenho.

A sequência de eventos ao usar a API de streaming é a seguinte:

  1. Crie um PushTopic com base em uma consulta SOQL. Isso define o canal.
  2. Clientes se inscrevem no canal.
  3. Um registro é criado, atualizado, excluído ou não excluído (ocorre um evento). As alterações nesse registro são avaliadas.
  4. Se as alterações de registro corresponderem aos critérios da consulta PushTopic, uma notificação será gerada pelo servidor e recebida pelos clientes inscritos.

 

8. APEX REST API

A REST API do Force.com permite usar uma API simples e leve para acessar os dados do Force.com, usando o OAuth padrão, junto com uma variedade de tipos de dados – XML ​​e JSON.

A REST API é configurada fora da caixa para atender às operações básicas de CRUD (criação, leitura, atualização e exclusão) do gerenciamento de dados.

O Apex REST API aumenta essa funcionalidade e possibilita que os desenvolvedores criem seus próprios serviços da Web baseados em REST API usando o Apex. Ele tem todas as vantagens da arquitetura REST API, fornece a capacidade de definir lógica customizada e inclui mapeamento automático de argumento/objeto.

Nem preciso falar que essa é a minha preferida né, se você acompanha o blog já deve ter visto meus posts anteriores, Mergulhando fundo na utilização de REST API do Salesforce e Criando REST públicas no Salesforce.

 

9. Apex SOAP API

Você pode expor seus métodos do Apex como serviços da Web SOAP para que aplicativos externos possam acessar seu código e seu aplicativo, com isso você utiliza de todos o poder do SOAP API para expor seus próprios métodos e tratar as chamadas da forma que desejar.

 

10. REST API do Chatter

Use a REST API do Chatter para exibir dados do Salesforce, especialmente em aplicativos móveis. Além dos feeds, usuários, grupos e seguidores do Chatter, a API REST do Chatter fornece acesso programático a arquivos, recomendações, tópicos, notificações, compra do Data.com e muito mais.

A REST API do Chatter é semelhante às APIs oferecidas por outras empresas com feeds, como o Facebook e o Twitter, mas também expõe os recursos do Salesforce além do Chatter.

Muitas ações de recurso da API REST do Chatter são expostas como métodos estáticos em classes do Apex no ConnectApi namespace. Essas classes são chamadas de Chatter no Apex. Use o Chatter no Apex para criar experiências personalizadas no Salesforce. O Chatter no Apex está disponível em todas as organizações e edições que têm o Apex ativado.

 

Limite das APIs do Salesforce

Infelizmente nem tudo são flores, o Salesforce faz um rastreio bem refinado em termos de uso da API, e muitas delas com alguns limites diários, sugiro que você de uma lida na documentação para entender melhores esse limites

O Salesforce limita o número de chamadas de API por organização para garantir a integridade da instância. Esses limites existem para evitar que scripts potencialmente perigosos prejudiquem os servidores. Eles não perturbam seu trabalho cotidiano. Ainda assim, é uma boa ideia se familiarizar com eles.

Há dois tipos de limites de API. Os limites concomitantes restringem o número de chamadas de longa duração (20 segundos ou mais longas) que estão ocorrendo simultaneamente. Os limites totais restringem o número de chamadas feitas dentro de um período contínuo de 24 horas.

Os limites concomitantes variam por tipo de organização. Para um ORG de Trailhead Playground, o limite é cinco chamadas de longa duração de uma vez. Para uma organização de sandbox, são 25 chamadas de longa duração.

Os limites totais variam dependendo da edição da organização, do tipo de licença e pacotes de expansão que você compra.

Por exemplo, uma organização Enterprise Edition recebe 1.000 chamadas por licença do Salesforce e 200 chamadas por licença de Aplicativo Salesforce Light. Com o Pacote de aplicativos ilimitado, a mesma organização Enterprise Edition recebe um adicional de 4.000 chamadas.

Os limites totais são ainda sujeitos a mínimos e máximos com base na edição da organização.

Você tem várias maneiras de verificar suas chamadas de API restantes. Você pode visualizá-las na caixa de uso da API na página Visão geral do sistema. Em Configuração, insira Visão geral do sistema na caixa Busca rápida e selecione Visão geral do sistema. Você pode ainda configurar notificações para quando sua organização excede um número de chamadas de API que você determina. Para fazer isso, em Configuração, insira Notificações de uso da API na caixa Busca rápida e selecione Notificações de uso da API.

Quando usar a REST API ou a SOAP API, o cabeçalho de resposta LimitInfoHeader fornece informações sobre suas chamadas restantes. Você pode ainda acessar o recurso Limites da API REST para obter informações sobre todos os tipos de limites em sua organização.

 

Tabela comparativa

Escolher a API certa para suas necessidades de integração é uma decisão importante. Aqui estão algumas informações sobre para efeito de comparação, seus protocolos e formato de dados permitidos, além da sua forma de comunicação.

Nome da API Protocolo Formato de dados Comunicação
SOAP API SOAP (WSDL) XML Síncrona
REST API REST JSON, XML Síncrona
Bulk API REST CSV, JSON, XML Assíncrona
Tooling API REST ou SOAP (WSDL) JSON, XML, personalizado Síncrona
REST API do Analytics REST JSON, XML Síncrona
API de metadados SOAP (WSDL) XML Assíncrona
API de streaming Bayeux JSON Assíncrona (transmissão de dados)
REST API do Apex REST JSON, XML, personalizado Síncrona
SOAP API do Apex SOAP (WSDL) XML Síncrona
REST API do Chatter REST JSON, XML Síncrona (fotos são processadas de forma assíncrona)

 

Aproveite que chegou até aqui, e me conte nos comentários, quais APIs do Salesforce você já utiliza.

Um forte abraço e até o próximo post :)

 

Fernando Sousa

Fernando Sousa

Senior Salesforce Developer

Bacharel em Sistemas da Informação pela Universidade de Taubaté (UNITAU) e MBA em Projeto de Aplicações para Dispositivos Móveis pelo IGTI – Instituto de Gestão em Tecnologia da Informação. 

Comecei a programar bem cedo, por volta de 10 anos de idade, de maneira auto-didata passei por várias linguagens.

Em 2015 me conectei a plataforma Salesforce pela primeira vez, para fazer una integração entre um Aplicativos Mobile em android e o Salesforce Platform. 

Atualmente com as certificações Salesforce Certified Platform Developer I, Salesforce Certified Platform App BuilderSalesforce Certified Platform Developer IISalesforce Administrator e Sharing and Visibility.

Acompanhe meu Trailhead aqui.