Traduzido com IA. Ainda não revisto pela comunidade. Ler em inglês

Blog · 18 de setembro de 2023 · Steve Simpson · Integração

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.

Diagrama: cinco exemplos de serviços web personalizados em Apex chamados a partir do Postman: GET que devolve uma lista de registos, GET com objeto de resposta, GET com parâmetro, POST e POST com erro

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.

Código Apex: um recurso REST com um método GET que consulta contas e devolve a lista com a serialização padrão

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.

Código Apex: um método GET que monta um objeto de resposta com uma lista de clientes

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.

Código Apex: um método GET que lê um parâmetro customerid do pedido e devolve esse cliente num objeto de resposta

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.

Código Apex: um método POST que analisa o corpo do pedido, insere uma conta e devolve um estado de sucesso ou de erro

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).

Código Apex: o método POST com tratamento de erros, a devolver a mensagem de erro e um código de estado HTTP 500

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