Recuperar registros usando a API Rest no Salesforce

Recuperar Registros Usando A Api Rest No Salesforce



Neste guia, discutiremos como recuperar os registros do Salesforce com a API REST por meio do Workbench no Salesforce. Como parte deste guia, discutiremos como usar o Workbench, buscar registros específicos usando sObject e buscar vários registros de um objeto usando a consulta e buscar registros escrevendo a API REST personalizada do Apex. Utilizaremos o objeto Salesforce Standard Case para demonstração. Não há necessidade de criar nenhum registro de caso no back-end do Salesforce. Usamos o registro de caso padrão existente fornecido pela Salesforce.

Apresentando o Workbench

O Workbench não é um produto oficial da Salesforce.com. Mas utilizaremos o Salesforce para executar as operações de manipulação de dados, como selecionar, inserir, upsert, atualizar e excluir, apenas fazendo login em sua conta do Salesforce (compatível com Sandbox e Produção). Este é o site oficial para fazer login no Workbench com o Salesforce: https://workbench.developerforce.com/login.php .

A partir de agora, mantenha a versão da API apenas como existente e clique no botão “Login with Salesforce”.









Precisamos do Explorador REST. Navegue até a guia “utilitários” e clique em “REST Explorer”.







Você verá a IU como na ilustração a seguir. Precisamos optar por GET para buscar os registros do Salesforce em todo este guia. Precisamos especificar o URI que busca os registros do Salesforce e clicar no botão “Executar”.



Recuperar registro específico com ID do Salesforce

Com base no ID do registro do Salesforce, podemos buscar todo o registro do Salesforce. Precisamos definir o URI da seguinte maneira:

/ Serviços / dados / v56.0 / soluços / objectAPIName / eu ia

Aqui, o “objectAPIName” é o objeto padrão/personalizado do Salesforce e o “id” refere-se ao ID do Salesforce.

Retornar:

Você obterá a resposta bruta HTTP/1.1 200 OK no formato JSON, como no seguinte:

{
'atributos' : {
'tipo' :
'url' :
} ,
'campo' : Valor,
...
}

Exemplo:

Neste exemplo, buscamos o registro de caso 5005i00000W4GM5AAN.

TIPO: / Serviços / dados / v56.0 / soluços / Caso / 5005i00000W4GM5AAN

Resultado:

Podemos ver que a resposta é gerada no formato JSON.

Também podemos ver os resultados diretamente daqui:

Recupere vários registros com consulta

É hora de recuperar vários registros do objeto Salesforce. Anteriormente, especificávamos os objetos no URI. Aqui, precisamos especificar uma consulta que receba a consulta como parâmetro.

URI: serviços / dados / v57.0 / consulta / ? q =SELECT+field1,field2,....+from+ObjectAPIName

Precisamos usar “+” como delimitador para unir as palavras-chave em uma consulta. Ele retorna o totalSize e os registros em uma pasta. O nome da pasta para cada registro é [Item 1],…[Item n].

Exemplo 1:
Vamos retornar os registros que incluem CaseNumber, status, prioridade e descrição do objeto Case.

/ Serviços / dados / v57.0 / consulta / ? q =SELECT+CaseNumber,Status,Priority,Description+from+Case

Resultado:

Ao clicar em “Expandir tudo”, você verá todos os registros com seus atributos e valores.

Deixe-me mostrar o primeiro e o último registro:

Exemplo 2:
Vamos retornar apenas três registros com os mesmos campos vistos no primeiro exemplo.

/ Serviços / dados / v57.0 / consulta / ? q =SELECT+CaseNumber,Status,Priority,Description+from+Case+limit+ 2

Resultado:
Os dois primeiros registros presentes no objeto Case são retornados.

Exemplo 3:
Vamos especificar a condição WHERE na consulta que seleciona os registros com o status “Novo”.

/ Serviços / dados / v57.0 / consulta / ? q =SELECT+CaseNumber,Status,Priority,Description+from+Case+where+ Status = 'Novo'

Resultado:

Existem cinco registros com o status “Novo”.

Recurso de descanso personalizado no Apex

Podemos utilizar o Salesforce Apex que retorna o registro do objeto Salesforce especificando o URI no Workbench. Para escrever REST no Apex, temos que utilizar algumas anotações que acessam a API REST em sua classe Apex. Certifique-se de que nossa classe Apex seja globalmente estática.

1. Anotação @RestResource

Essa anotação é usada para permitir que exponha uma classe do Apex como um recurso REST. Leva o urlMapping como um parâmetro que é usado para localizar o URI no Workbench.

Sintaxe: @RestResource(urlMapping=’/Version/ApexClassName/’)

A “versão” é a sua versão do Workbench como V56.0 e o “ApexClassName” é a sua classe Apex onde os recursos da API Rest estão envolvidos.

2. Anotação @HttpGet

Essa anotação é usada para permitir que exponha uma classe do Apex como um recurso REST. Ele é chamado quando uma solicitação HTTP GET é enviada ao servidor e retorna o recurso especificado.

Sintaxe: @httpGet

Exemplo 1: parâmetro único

Grave a classe Apex “RestApi_Get_Record.apxc” que envolve o método “Rest Get” para retornar o id, CaseNumber, status, prioridade e origem do caso do objeto Case.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
classe global RestApi_Get_Record {

// REST - Obter método
@ httpGet
caso estático global getCaseDetails ( ) {

// Criar objeto para objeto de caso
Caso case_obj = novo caso ( ) ;
Mapa < Corda, Corda > paramsMap = RestContext.request.params;

// Pegue o caso eu ia
String caseid =paramsMap.get ( 'input_id' ) ;

// consulta SOQL que irá retornar eu ia ,CaseNumber,Status,Prioridade,Origem do Caso de
// o objeto Caso
case_obj = [ selecionar eu ia ,CaseNumber,Status,Priority,Origin from Case where Id =:caseid ] ;
retornar case_obj;
}
}

URI e resultado:

Vá para o Workbench e navegue até o REST Explorer. Passe o id como 5002t00000Pdzr2AAB para o parâmetro input_id.

/ Serviços / vértice / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB

Explicação:

  • Crie um objeto para o caso “case_obj”.
  • Obtenha os parâmetros usando RestContext.request.params.
  • Obtenha o ID do caso do parâmetro input_id e armazene-o na variável caseid.
  • Escreva a consulta SOQL que retorna o id, CaseNumber, status, prioridade, origem do caso do objeto Case do caso “caseid”.
  • Retorna o objeto case (case_obj).

Exemplo 2: vários parâmetros

Utilize a classe Apex anterior e obtenha o parâmetro “Status” junto com o id. Especifique esses dois parâmetros no Workbench URI que é separado por “&”.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
classe global RestApi_Get_Record {

// REST - Obter método
@ httpGet
caso estático global getCaseDetails ( ) {

// Criar objeto para objeto de caso
Caso case_obj = novo Caso ( ) ;
Mapa < Corda, Corda > id_param = RestContext.request.params;
Mapa < Corda, Corda > status_param = RestContext.request.params;

// Obtenha o id_param no case_id
String case_id = id_param.get ( 'input_id' ) ;
// Obtenha o status_param no case_status
String case_status = status_param.get ( 'status' ) ;

case_obj = [ selecionar eu ia ,CaseNumber,Status,Priority,Origin from Case where Id =:case_id and Status =: case_status ] ;
retornar case_obj;
}
}

URI e resultado:

Vá para o Workbench e navegue até o REST Explorer. Passe o input_id como 5002t00000PdzqwAAB e o status como “Closed” no URI.

/ Serviços / vértice / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB & status =Fechado

Conclusão

Discutimos três cenários de recuperação dos registros do Salesforce por meio da API REST do Salesforce usando o Workbench. Para retornar um registro específico, precisamos especificar o sObject passando o id como parâmetro na URI. Da mesma forma, passamos os parâmetros de consulta para obter registros específicos. Usando o Apex, podemos criar nosso próprio método “Get” para selecionar o registro com base em parâmetros únicos/múltiplos.