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.

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.

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.

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.

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.

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

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