Recupera i record utilizzando l'API Rest in Salesforce

Recupera I Record Utilizzando L Api Rest In Salesforce



In questa guida, discuteremo come recuperare i record di Salesforce con l'API REST tramite Workbench in Salesforce. Come parte di questa guida, discuteremo come utilizzare Workbench, recuperare record specifici utilizzando sObject e recuperare più record da un oggetto utilizzando la query e recuperare i record scrivendo l'API REST personalizzata Apex. Utilizzeremo l'oggetto Salesforce Standard Case per la dimostrazione. Non è necessario creare alcun record di caso nel back-end di Salesforce. Utilizziamo il record del caso standard esistente fornito da Salesforce.

Presentazione di Workbench

Workbench non è un prodotto ufficiale di Salesforce.com. Ma utilizzeremo Salesforce per eseguire le operazioni di manipolazione dei dati come selezione, inserimento, upsert, aggiornamento ed eliminazione semplicemente accedendo al tuo account Salesforce (supporta sia Sandbox che Production). Questo è il sito Web ufficiale per accedere a Workbench con Salesforce: https://workbench.developerforce.com/login.php .

A partire da ora, mantieni solo la versione dell'API esistente e fai clic sul pulsante 'Accedi con Salesforce'.









Abbiamo bisogno di REST Explorer. Passare alla scheda 'Utilità' e fare clic su 'REST Explorer'.







Vedrai l'interfaccia utente come nell'illustrazione seguente. Dobbiamo scegliere GET per recuperare i record da Salesforce in questa intera guida. Dobbiamo specificare l'URI che recupera i record di Salesforce e fare clic sul pulsante 'Esegui'.



Recupera record specifico con ID Salesforce

In base all'ID del record di Salesforce, possiamo recuperare l'intero record di Salesforce. Dobbiamo impostare l'URI come segue:

/ Servizi / dati / v56.0 / soggetti / objectAPIName / id

Qui, 'objectAPIName' è l'oggetto Salesforce Standard/Custom e 'id' si riferisce all'ID Salesforce.

Ritorno:

Otterrai la risposta non elaborata HTTP/1.1 200 OK nel formato JSON come nel seguente:

{
'attributi' : {
'tipo' :
'URL' :
} ,
'campo' : Valore,
...
}

Esempio:

In questo esempio, recuperiamo il case record 5005i00000W4GM5AAN.

TIPO: / Servizi / dati / v56.0 / soggetti / Caso / 5005i00000W4GM5AAN

Risultato:

Possiamo vedere che la risposta è generata in formato JSON.

Possiamo anche visualizzare i risultati direttamente da qui:

Recupera più record con la query

È il momento di recuperare più record dall'oggetto Salesforce. In precedenza, abbiamo specificato gli oggetti nell'URI. Qui, dobbiamo specificare una query che accetta la query come parametro.

URI: servizi / dati / v57.0 / domanda / ? Q =SELEZIONA+campo1,campo2,....+da+NomeAPIOggetto

Dobbiamo usare '+' come delimitatore per unire le parole chiave in una query. Restituisce il totalSize e registra in una cartella. Il nome della cartella per ogni record è [Elemento 1],…[Elemento n].

Esempio 1:
Restituiamo i record che includono CaseNumber, status, priority e description dall'oggetto Case.

/ Servizi / dati / v57.0 / domanda / ? Q =SELEZIONA+Numero caso,Stato,Priorità,Descrizione+da+Caso

Risultato:

Quando fai clic su 'Espandi tutto', vedrai tutti i record con i relativi attributi e valori.

Permettetemi di mostrare il primo e l'ultimo record:

Esempio 2:
Restituiamo solo tre record con gli stessi campi visti nel primo esempio.

/ Servizi / dati / v57.0 / domanda / ? Q =SELEZIONA+Numero caso,Stato,Priorità,Descrizione+da+Limite+caso+ 2

Risultato:
Vengono restituiti i primi due record presenti nell'oggetto Case.

Esempio 3:
Specifichiamo la condizione WHERE nella query che seleziona i record con lo stato “Nuovo”.

/ Servizi / dati / v57.0 / domanda / ? Q =SELEZIONA+Numero caso,Stato,Priorità,Descrizione+da+Caso+dove+ Stato = 'Nuovo'

Risultato:

Esistono cinque record con lo stato 'Nuovo'.

Risorsa di riposo personalizzata in Apex

Possiamo utilizzare Salesforce Apex che restituisce il record dall'oggetto Salesforce specificando l'URI nel Workbench. Per scrivere REST in Apex, dobbiamo utilizzare alcune annotazioni che accedono all'API REST nella tua classe Apex. Assicurati che la nostra classe Apex sia globalmente statica.

1. Annotazione @RestResource

Questa annotazione viene utilizzata per abilitare quale espone una classe Apex come risorsa REST. Accetta urlMapping come parametro utilizzato per individuare l'URI nel Workbench.

Sintassi: @RestResource(urlMapping='/Version/ApexClassName/')

La 'versione' è la tua versione di Workbench come V56.0 e 'ApexClassName' è la tua classe Apex in cui sono coinvolte le risorse API Rest.

2. Annotazione @HttpGet

Questa annotazione viene utilizzata per abilitare quale espone una classe Apex come risorsa REST. Viene chiamato quando una richiesta HTTP GET viene inviata al server e restituisce la risorsa specificata.

Sintassi: @httpGet

Esempio 1: Singolo Param

Scrivere la classe Apex 'RestApi_Get_Record.apxc' che coinvolge il metodo 'Rest Get' per restituire id, CaseNumber, status, priority e origin from case dall'oggetto Case.

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

// RIPOSO - Ottieni metodo
@ httpGet
Caso statico globale getCaseDetails ( ) {

// Crea oggetto per Oggetto caso
Caso case_obj = nuovo caso ( ) ;
Carta geografica < Corda, Corda > paramsMap = RestContext.request.params;

// Ottenere il caso id
String caseid =paramsMap.get ( 'input_id' ) ;

// Query SOQL che lo farà ritorno id ,NumeroCaso,Stato,Priorità,Origine da Caso da
// l'oggetto Caso
case_obj = [ Selezionare id ,CaseNumber,Status,Priority,Origin from Case where Id =:caseid ] ;
ritorno oggetto_caso;
}
}

URI e risultato:

Vai a Workbench e vai a REST Explorer. Passa l'id come 5002t00000Pdzr2AAB al parametro input_id.

/ Servizi / apexrest / v56.0 / RestApi_Get_Record / ? input_id =5002t00000Pdzr2AAB

Spiegazione:

  • Creare un oggetto per il caso 'case_obj'.
  • Ottieni i parametri utilizzando RestContext.request.params.
  • Ottieni l'ID del caso dal parametro input_id e memorizzalo nella variabile caseid.
  • Scrivi la query SOQL che restituisce id, CaseNumber, status, priority, origin from case dall'oggetto Case del case “caseid”.
  • Restituisce l'oggetto caso (case_obj).

Esempio 2: più parametri

Utilizza la classe Apex precedente e ottieni il parametro 'Stato' insieme all'id. Specifica questi due parametri nell'URI di Workbench che è separato da '&'.

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

// RIPOSO - Ottieni metodo
@ httpGet
Caso statico globale getCaseDetails ( ) {

// Crea oggetto per Oggetto caso
Caso case_obj = nuovo caso ( ) ;
Carta geografica < Corda, Corda > id_param = RestContext.request.params;
Carta geografica < Corda, Corda > status_param = RestContext.request.params;

// Ottieni id_param nel case_id
Stringa case_id = id_param.get ( 'input_id' ) ;
// Ottieni status_param in case_status
Stringa case_status =status_param.get ( 'stato' ) ;

case_obj = [ Selezionare id ,CaseNumber,Status,Priority,Origin from Case dove Id =:case_id e Status =: case_status ] ;
ritorno oggetto_caso;
}
}

URI e risultato:

Vai a Workbench e vai a REST Explorer. Passa input_id come 5002t00000PdzqwAAB e lo stato come 'Chiuso' nell'URI.

/ Servizi / apexrest / v56.0 / RestApi_Get_Record / ? input_id =5002t00000PdzqwAAB & stato = Chiuso

Conclusione

Abbiamo discusso tre scenari di recupero dei record di Salesforce tramite l'API REST di Salesforce utilizzando Workbench. Per restituire un record specifico, dobbiamo specificare sObject passando l'id come parametro nell'URI. Allo stesso modo, passiamo i parametri della query per ottenere record specifici. Utilizzando Apex, possiamo creare il nostro metodo 'Get' per selezionare il record in base a parametri singoli/multipli.