Serviços web em Apex: blocos de construção para magos da web
Introdução:
Neste artigo, vou aprofundar a construção de serviços web personalizados em Apex no Salesforce. Esses serviços são cruciais quando precisa que um processo externo interaja com o Salesforce para ler ou gravar dados e a API REST padrão não é suficiente. Vamos passar por cinco exemplos, com complexidade crescente, de consultas padrão a atualizações.

Visão geral dos serviços web personalizados
Vamos explorar cinco exemplos de serviços web personalizados:
GET com uma lista padrão de SObjects: obter dados usando uma lista padrão de SObjects.
Wrapper com resposta JSON: melhorar o pedido GET envolvendo-o numa resposta JSON.
Adicionar parâmetros: incluir parâmetros no pedido GET para obter dados mais específicos.
POST para inserção: implementar um pedido POST para inserir dados.
Devolução de mensagens de erro: tratar e devolver mensagens de erro de forma adequada.
Implementar serviços web personalizados
Exemplo 1: GET com uma lista padrão de SObjects
Neste exemplo, definimos um recurso REST com um URI personalizado e especificamos o verbo HTTP (GET). A classe deve ser declarada como global, e devolvemos uma lista de contas padrão com uma consulta simples.

Exemplo 2: wrapper com resposta JSON
Para ter controlo sobre os dados devolvidos ao cliente, usamos um objeto de resposta. Em vez de devolver uma lista de SObjects, devolvemos uma lista de objetos de resposta personalizados, uma representação leve de um cliente só com o ID e o nome.

Exemplo 3: adicionar parâmetros
Os parâmetros são essenciais quando precisa de dados de um cliente específico. Lendo RestContext.params, obtém o ID do cliente e usa-o na cláusula WHERE do SOQL para filtrar os dados.

Exemplo 4: POST para inserção
Quando precisa de gravar dados, usa um método POST. Neste exemplo, criamos um objeto de resposta e um objeto de pedido. O objeto de pedido recebe um cliente com um nome, e usamos o serializador JSON para serializar o pedido numa classe específica. Depois de criar e inserir uma nova conta, devolvemos um estado de sucesso.

Exemplo 5: devolução de mensagens de erro
Este exemplo é parecido com o exemplo 4, mas inclui tratamento de erros. Se ocorrer uma exceção, o erro é capturado, adicionado a uma lista, e o código de estado é definido como 500 (ou o número que preferir).

Conclusão
Com estes exemplos, mostrámos os blocos básicos para criar serviços web personalizados em Apex no Salesforce. Começando por um pedido GET simples, aumentámos a complexidade aos poucos, com parâmetros, pedidos POST e tratamento de erros.
Fique atento
Obrigado pela leitura, e mal posso esperar para partilhar consigo mais aventuras cheias de conhecimento em breve! Acompanhe aqui em www.SteveTechArc.com e no canal do YouTube @SteveTechArc (opens in a new tab). Subscreva e aprofunde o seu entendimento do Salesforce e de como integrá-lo com outros sistemas.
A ajudar a mudar o mundo, partilhando conhecimento sobre integração com outros arquitetos e com quem está na jornada para se tornar um!
Transcrição feita com a ajuda de IA
STA 1.8