Traduzido por IA. Ainda não revisado 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 post, vou me aprofundar na construção de serviços web personalizados em Apex no Salesforce. Esses serviços são cruciais quando você precisa que um processo externo interaja com o Salesforce para ler ou gravar dados e a API REST padrão não dá conta. 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 pelo Postman: GET que retorna uma lista de registros, 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: buscar dados usando uma lista padrão de SObjects.

Wrapper com resposta JSON: melhorar a requisição GET envolvendo-a numa resposta JSON.

Adicionando parâmetros: incluir parâmetros na requisição GET para buscar dados mais específicos.

POST para inserção: implementar uma requisição POST para inserir dados.

Retorno de mensagens de erro: tratar e retornar mensagens de erro de forma adequada.

Implementando serviços web personalizados

Exemplo 1: GET com uma lista padrão de SObjects

Neste exemplo, definimos um recurso REST com uma URI personalizada e especificamos o verbo HTTP (GET). A classe deve ser declarada como global, e retornamos 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 retorna a lista com a serialização padrão

Exemplo 2: wrapper com resposta JSON

Para ter controle sobre os dados devolvidos ao cliente, usamos um objeto de resposta. Em vez de retornar uma lista de SObjects, retornamos 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: adicionando parâmetros

Parâmetros são essenciais quando você precisa de dados de um cliente específico. Lendo RestContext.params, você obtém o ID do cliente e o usa na cláusula WHERE do SOQL para filtrar os dados.

Código Apex: um método GET que lê um parâmetro customerid da requisição e retorna esse cliente num objeto de resposta

Exemplo 4: POST para inserção

Quando você precisa gravar dados, usa um método POST. Neste exemplo, criamos um objeto de resposta e um objeto de requisição. O objeto de requisição recebe um cliente com um nome, e usamos o serializador JSON para serializar a requisição numa classe específica. Depois de criar e inserir uma nova conta, retornamos um status de sucesso.

Código Apex: um método POST que analisa o corpo da requisição, insere uma conta e retorna um status de sucesso ou de erro

Exemplo 5: retorno 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 status é definido como 500 (ou o número que você preferir).

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

Conclusão

Com esses exemplos, mostramos os blocos básicos para criar serviços web personalizados em Apex no Salesforce. Começando por uma requisição GET simples, aumentamos a complexidade aos poucos, com parâmetros, requisições POST e tratamento de erros.

Fique de olho

Obrigado pela leitura, e mal posso esperar para compartilhar mais aventuras cheias de conhecimento com você em breve! Acompanhe aqui em www.SteveTechArc.com e no canal do YouTube @SteveTechArc (opens in a new tab). Inscreva-se e aprofunde seu entendimento do Salesforce e de como integrá-lo a outros sistemas.

Ajudando a mudar o mundo compartilhando 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